场景:假设片段中有2个微调器,名为spinner a
和b
:
Spinner
a
包含:dog cat elephantSpinner
b
包含:micky,minny,moe
我的问题是:当用户使用应用并点击Spinner a
并选择elephant
时,Spinner {micky
和minny
选项是否可能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>
答案 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);