나는 사용자로부터 입력을 얻기 위해 세 개의 스피너를 사용하고 있으며이 정보를 기반으로 일부 데이터를 그래프로 나타냅니다. 그러나 나는 이것을하는 방법을 알아낼 수 없습니다. 다음 코드 (발췌 중요한 비트를 표시하는)가 :여러 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을 선언 한 변수 등) 덕분에 편집 : 회 전자에 다른 초기 문자열이 여러 개 포함되어 있지만 사용 된 문자열이 포함되어 있습니다.