单击其他微调器后,Android,微调器项目消失了

时间:2015-11-10 13:07:55

标签: java android android-studio fragment spinner

场景:假设片段中有2个微调器,名为spinner ab

  

Spinner a包含:dog cat elephant

     

Spinner b包含:micky,minny,moe

我的问题是:当用户使用应用并点击Spinner a并选择elephant时,Spinner {mickyminny选项是否可能1}}选项已消失,只留下b作为选项?

最好的方法是什么? (不使用任何数据库)

的xml:

moe

字符串值:

<Spinner 
android:id="@+id/spinner_a"
android:entries="@array/value_a"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>

<Spinner 
android:id="@+id/spinner_b"
android:entries="@array/value_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>

的java:

<resources>
<string-array name="value_a">
    <item>dog</item>
    <item>cat</item>
    <item>Elephant</item>
    </string-array>
<string-array name="value_b">
    <item>micky</item>
    <item>minny</item>
    <item>moe</item>
</string-array>

1 个答案:

答案 0 :(得分:0)

是的,你可以,但不是你的方式。 对于微调器,它没关系,但是对于b,你应该从Java代码中进行管理。 添加到微调器一个监听器,并根据所选项目修改微调器b的字符串数组。

监听器:

Spinner spinner_a = (Spinner) findViewById(R.id.spinner_a);
spinner_a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                // retrieve selected item
                String spinner_a_choice = parent.getItemAtPosition(position).toString();
                // elaborate and set here your spinner b with its own adapter
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // Something else
            }
        });

如何将适配器添加到微调器(您必须对其进行操作):

Spinner spinner_b = (Spinner) findViewById(R.id.spinner_b);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.value_b, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner_b.setAdapter(adapter);