我在SlidingDrawer
放置了4个微调器。我在string.xml中创建了一个字符串数组,比如
<string-array name="colorArray">
<item>Red</item>
<item>Green</item>
<item>Blue</item>
<item>Orange</item>
<item>While</item>
<item>Black</item>
</string-array>
我想用这个数组填充微调器..
因为我已经这样做了,
option1 = (Spinner)findViewById(R.id.spinner_first);
adapter = ArrayAdapter.createFromResource(getApplicationContext(),
R.array.colorArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
option1.setAdapter(adapter);
和其他3相同。现在对我来说很好。现在的结果是,整个数组都列在所有的微调器上。
但是我想删除所有其他微调器中由一个微调器选择的项目,以便该项目不会显示在另一个微调器中。例如,如果我为第一个微调器选择“红色”,则项目“红色“必须从所有其他旋转器中移除..
如何实现。
示例代码和指导将会很明显.. 提前谢谢..
答案 0 :(得分:0)
只需创建主数组的子数组
就像首先从xml文件中获取数组现在默认情况下默认选择第0个位置然后在子数组中跳过
String mainArr[]; // fetch from xml
String sub1[] = new String[mainArr.length-1];
现在通过迭代将主数组值存储到sub1数组中,并且在get put中存储值的条件,如果选定的position == i
然后跳过或选择position!=i
在项目更改侦听器中执行此操作从主数组重新创建数组,跳过所选项目并通过适配器通知
答案 1 :(得分:0)
对于 Spinner 的 onItemSelectedListener 的 onItemSelected(),您需要为其他每个执行以下操作>纱厂:
Spinner spinner; // Each one of the other spinners
String item; // Item selected in the current spinner
// Get the adapter for the other spinner
ArrayAdapter<CharSequence> array = spinner.getAdapter();
// Remove selected element in the current spinner from adapter
array.remove(item);
// Set adapter again
spinner.setAdapter(array);
抱歉,但我没有(也不能)测试它......