2017-09-19 1 views
-1

나는 사용자로부터 입력을 얻기 위해 세 개의 스피너를 사용하고 있으며이 정보를 기반으로 일부 데이터를 그래프로 나타냅니다. 그러나 나는 이것을하는 방법을 알아낼 수 없습니다. 다음 코드 (발췌 중요한 비트를 표시하는)가 :여러 onItemSelectedListeners를 기반으로 작업 수행

final GraphView graph = (GraphView) findViewById(R.id.graph); 
Spinner selectGraphSpinner = (Spinner) findViewById(R.id.graphSpinner); 
Spinner selectUserSpinner = (Spinner) findViewById(R.id.userSpinner); 
Spinner selectTimeSpinner = (Spinner) findViewById(R.id.timeSpinner); 
    String[] items = new String[]{"Please Select a User", "04950f4ae53f80", "another user"}; 

    // Create ArrayAdapters for Spinners 
ArrayAdapter<CharSequence> selectGraphAdapter = ArrayAdapter 
      .createFromResource(this, R.array.Graphs, 
        android.R.layout.simple_spinner_item); 
ArrayAdapter<String> userSpinnerAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, items); 
ArrayAdapter<CharSequence> spinTimeAdapter = ArrayAdapter 
      .createFromResource(this, R.array.TimeIncrements, 
        android.R.layout.simple_spinner_item); 
selectGraphSpinner.setAdapter(selectGraphAdapter); 
selectUserSpinner.setAdapter(userSpinnerAdapter); 
selectTimeSpinner.setAdapter(spinTimeAdapter); 

다른 회 전자의 onItemSelectedListeners × 3 반복 :

selectUserSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
            int position, long id) { 
      itemOne = parent.getItemAtPosition(0).toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 
     } 
    }); 

: 그래프의 논리 지금까지 :

while (itemOne != null) { 
     if (itemOne.equalsIgnoreCase("04950f4ae53f80")) { 
      if (itemTwo.equalsIgnoreCase("Estimated vs Actual Time")) { 
       if (itemThree.equalsIgnoreCase("Day")) { 
        LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(getData(Data, "Day")); 

        graph.addSeries(series); 

       } else { 

       } 
      } else { 

      } 

     } else { 

     } 
    } 

나는 그래프가 하나의 스피너로 시도했지만 왜 리스너가 변수를 저장하지 않는지 파악할 수 없다는 것을 안다. (전역 정적 스트링 itemOne을 선언 한 변수 등) 덕분에 편집 : 회 전자에 다른 초기 문자열이 여러 개 포함되어 있지만 사용 된 문자열이 포함되어 있습니다.

답변

0

각 회 전자에서 클릭 한 항목을 전역 함수/변수에 저장하여 관리 할 수있었습니다. 이 경우 논리 확인을 실행하여 사례에 따라 true 또는 false를 반환 할 수있었습니다. 그런 다음 논리 검사가 true를 반환하면 구현할 수 있도록 그래프 메서드를 수신기에 넣습니다.

관련 문제