看板 AndroidDev 關於我們 聯絡資訊
※ 引述《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