作者yauhh (喲)
看板AndroidDev
標題Re: [問題] 我想問一個有關spinner的問題
時間Tue Apr 3 21:31:53 2012
※ 引述《w999 (Mr.帥)》之銘言:
: 不好意思我又來問問題了
: 我想問一下有辦法讓我隨著選到spinner裡面的item
: 而改變listview的內容
Spinner是選單,所以程式只要加上spinner的OnItemSelectedListener,
選到項目時,就根據項目準備不同的列表,塞進ListView. 像以下例子是簡單的
文字呈現:
Spinner spinner = (Spinner)findViewById(R.id.spinner);
String[] arr = new String[]{"A", "B"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
HelloWorldActivity.this,
android.R.layout.simple_spinner_item,
arr);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> parent, View me, int id,
long position) {
LinearLayout layout = (LinearLayout)me.getParent().getParent();
ListView listview = (ListView)layout.findViewById(
android.R.id.list);
TextView textview = (TextView)me;
ListAdapter adapter = null;
if (textview.getText().equals("A")) {
String[] arrA = new String[]{ "Hello", "world"};
adapter = new ArrayAdapter(HelloWorldActivity.this,
android.R.layout.simple_list_item_1,
arrA);
} else if (textview.getText().equals("B")) {
String[] arrB = new String[]{ "Hello", "Kitty"};
adapter = new ArrayAdapter(HelloWorldActivity.this,
android.R.layout.simple_list_item_1,
arrB);
}
listview.setAdapter(adapter);
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.225.130
推 givemepass:這種寫法我怎覺得有點不妥 04/03 21:51
推 givemepass:把listview的宣告寫在外面會不會比較好一點? 04/03 21:55
→ givemepass:這樣adapter應該就可以重複使用了 04/03 21:56
→ yauhh:隨便寫個例子而已 04/03 22:16
→ yauhh:真的listview或adapter要宣告在哪裡,還是看場合,不是什麼都 04/03 22:21
→ yauhh:共用就了事. 換作別的需求,我這個寫法可能變成比較好的作法 04/03 22:22
推 w999:謝謝大大詳細的回答我今天才發現= = 04/07 11:24
推 w999:但是我有點看不太懂..因為我的程式一開始就給spinner的選項 04/07 12:35
→ w999:設定成中文了 04/07 12:36