我又来了。我试图在过去几个小时里,如何更改下拉框的内容。 好的,让我们从头开始。
我有三个下拉框。它们都有初始值。第一个下拉框是主要下拉框,其他两个下拉框取决于第一个下拉框选择的值。因此,在选择第一个下拉框后,我想更新最后两个下拉框。 *编辑:所有下拉框都在同一个活动中。
我该如何实现这一点?我的问题是,我只能在onitemselectadapter中更改下拉框,但那是一个全新的类。我无法到达我的其他下拉框所在的活动。
谢谢
我又来了。我试图在过去几个小时里,如何更改下拉框的内容。 好的,让我们从头开始。
我有三个下拉框。它们都有初始值。第一个下拉框是主要下拉框,其他两个下拉框取决于第一个下拉框选择的值。因此,在选择第一个下拉框后,我想更新最后两个下拉框。 *编辑:所有下拉框都在同一个活动中。
我该如何实现这一点?我的问题是,我只能在onitemselectadapter中更改下拉框,但那是一个全新的类。我无法到达我的其他下拉框所在的活动。
谢谢
您的下拉菜单在不同的活动中使用吗?
如果是这样,您可以通过Intent(请参阅putExtra部分)传递第一个下拉菜单的所选值,并从下一个活动中检索该值,以便您可以相应地设置下一个下拉菜单。
编辑:
以下是更改第二个和第三个下拉菜单中所选项目的示例。 请使用您的逻辑更新监听器(onItemSelected方法)。
活动:
private Spinner s;
private Spinner s2;
private Spinner s3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] myList = new String[] { "Hello", "World", "Foo", "Bar" };
String[] myList2 = new String[] { "Hello2", "World2", "Foo2", "Bar2" };
String[] myList3 = new String[] { "Hello3", "World3", "Foo3", "Bar3" };
s = (Spinner) findViewById(R.id.spinner1);
s2 = (Spinner) findViewById(R.id.spinner2);
s3 = (Spinner) findViewById(R.id.spinner3);
s.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList));
s2.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList2));
s3.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList3));
s.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int pos, long id) {
s2.setSelection(pos);
s3.setSelection(pos);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}});
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="vertical">
<Spinner android:id="@+id/spinner1" android:layout_height="wrap_content" android:layout_width="fill_parent" />
<Spinner android:id="@+id/spinner2" android:layout_height="wrap_content" android:layout_width="fill_parent" />
<Spinner android:id="@+id/spinner3" android:layout_height="wrap_content" android:layout_width="fill_parent" />
</LinearLayout>