基于多个 onItemSelectedListeners 做一个任务
Posted
技术标签:
【中文标题】基于多个 onItemSelectedListeners 做一个任务【英文标题】:do a task based on multiple onItemSelectedListeners 【发布时间】:2018-02-27 16:04:48 【问题描述】:我正在使用三个微调器来获取用户的输入,然后根据这些信息绘制一些数据。但是我似乎无法弄清楚如何做到这一点。我有以下代码(提取以显示重要部分):
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 x 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
我知道该图表在我尝试使用一个微调器时工作,但无法弄清楚为什么听众不保存变量(我声明为全局 - 静态 String itemOne 等) 谢谢 编辑:微调器包含多个初始字符串不同的字符串,但提到了使用过的字符串,
【问题讨论】:
【参考方案1】:我设法通过将每个微调器中的单击项目保存到全局函数/变量来做到这一点。然后,这允许我运行逻辑检查,根据情况返回真或假。然后我将绘图方法放在侦听器中,以便在逻辑检查返回 true 时实现它
【讨论】:
以上是关于基于多个 onItemSelectedListeners 做一个任务的主要内容,如果未能解决你的问题,请参考以下文章
是否调用了 OnItemSelectedListener.onNothingSelected?