我必須開發基於spinner的應用程序。如何基於spinner1選擇更新spinner2
所以我採取了spinner1作爲產品的選擇,我必須給spinner2的數據。這是在特定的產品類別,所以我必須更新spinner1的基礎選擇spinner2。
我有很多搜索,但我可以得到任何確定的示例代碼或資源。所以請幫助我這樣做。
我必須開發基於spinner的應用程序。如何基於spinner1選擇更新spinner2
所以我採取了spinner1作爲產品的選擇,我必須給spinner2的數據。這是在特定的產品類別,所以我必須更新spinner1的基礎選擇spinner2。
我有很多搜索,但我可以得到任何確定的示例代碼或資源。所以請幫助我這樣做。
我同意@ user639183,也有類似的問題很多的......不過,你是怎麼做到的一些解釋:
spinner1.setOnItemSelectedListener(...)
舉例步驟1:
spinner1的private String[] spinner1values = new String[] { "cat1", "cat2" };
private String[][] spinner2values = new String[][] {
new String[] { "a1", "b1", "c1" },
new String[] { "a2", "b2" }
};
人口如下:
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, spinner1values);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
這至今是絕對簡單的,如果你讀了紗廠文檔和例子!
接下來,鉤在OnItemSelectedListener
:
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// create a new adapter with the corresponding values
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(arg0.getContext(),
android.R.layout.simple_spinner_item, spinner2values[position]);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// set adapter
((Spinner)findViewById(R.id.spinner2)).setAdapter(adapter2);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// nothing selected, so set empty options
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(arg0.getContext(),
android.R.layout.simple_spinner_item, new String[0]);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
((Spinner)findViewById(R.id.spinner2)).setAdapter(adapter2);
}
});
注意的是,該陣列中spinner2values
順序與類別對應值的順序!
感謝您的回覆。我已經明白了。 – 2011-04-08 09:24:45
@Hrushikesh如果可行,請將此帖標記爲答案,謝謝。 – 2011-04-08 09:37:04
這裏有很多類似的問題:http://stackoverflow.com/questions/4492003/dynamic-update-of-spinner2-based-on-choice-in-spinner-1 http://stackoverflow.com/questions/5453580/android-dynamic-spinner-update – ernazm 2011-04-08 08:58:18