首页 > 解决方案 > Android从第二个微调器中的第一个微调器获取所选项目,反之亦然

问题描述

我的应用程序中有两个微调器,我想从第一个微调器中的第二个微调器获取所选值,反之亦然。

这是我的代码:

 ArrayAdapter<String> adp1 = new ArrayAdapter<>(this,R.layout.spinner_item, list);
        adp1.setDropDownViewResource(R.layout.my_spinnerlist);
        sp1.setAdapter(adp1);sp1.setSelected(false);
        sp1.setSelection(0,true);

        ArrayAdapter<String> adp2 = new ArrayAdapter<>(this,R.layout.spinner_item, list2);
        adp2.setDropDownViewResource(R.layout.my_spinnerlist);
        sp2.setAdapter(adp2);sp2.setSelected(false);
        sp2.setSelection(0,true);

 sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {

         String item1 = list.get(position);   String item2 = list2.get(position);
 Log.e("first spinner", item1); Log.e("second spinner", item2);
}

 sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {

            String item1 = list.get(position);   String item2 = list2.get(position);
 Log.e("first spinner", item1); Log.e("second spinner", item2);
}

第一个微调器中的 item1 工作正常,第二个微调器中的 item2 显示正确的选定值。但是另一个微调器的值是错误的,因为它使用了当前微调器的(位置)。

那么如何显示另一个微调器的选定值或位置?

我也尝试过,sp2.getSelectedItem()但没有运气。

标签: androidspinner

解决方案


我不清楚你试图达到什么目标。无论如何,

如果您想在第一个中捕获第二个微调器项目。创建两个全局变量

Int a1=0;
Int a2=0;

并更改您的代码,如下所示

 sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View 
        arg1, int position, long id) {
     a1=position;
     String item1 = list.get(position);   
      String item2 = list2.get(a2);
     Log.e("first spinner", item1); Log.e("second spinner", item2);
 }

 sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View 
          arg1, int position, long id) {
        a2=position:;
        String item1 = list.get(a1);   
        String item2 = list2.get(position);
        Log.e("first spinner", item1); Log.e("second spinner", 
        item2);
}

推荐阅读