基于多个 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

onItemSelectedListener 没有被触发

是否调用了 OnItemSelectedListener.onNothingSelected?

从 OnItemSelectedListener 调用值

试图在android中创建一个spinner.OnItemSelectedListener事件[重复]

对话框中的 OnItemSelectedListener