我的应用程序中有两个微调器,我想从第二个微调器中获取第一个微调器的选择值,反之亦然。
这是我的代码。
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()
但运气不好。
我不清楚你想实现什么...无论如何。
如果你想在第一个项目中捕捉第二个旋转器项目。创建两个全局变量
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);
}
我已经找到了解决办法,因为这个位置在范围内。
String item1 = String.valueOf(position);
String item2 = String.valueOf(sp2.getSelectedItemPosition());
和第二个微调器中。
String item1 = String.valueOf(sp1.getSelectedItemPosition());
String item2 = String.valueOf(position);
如果用户在第一或第二微调器中改变了什么,就会弹出一个实时列表。这就是为什么我想知道这个问题。