Android 列表選擇框 Spinner詳解及實例
Android 列表選擇框 Spinner詳解及實例
Spinner 是 Android 的列表選擇框,不過 spinner 并不需要顯示下拉列表,而是相當(dāng)于彈出一個菜單供用戶選擇。
Spinner 屬性:
● android:spinnerMode:列表顯示的模式,有兩個選擇,為彈出列表(dialog)以及下拉列表(dropdown),如果不特別設(shè)置,為下拉列表。
● android:entries:使用<string-array.../>資源配置數(shù)據(jù)源。
● android:prompt:對當(dāng)前下拉列表設(shè)置標(biāo)題,僅在dialog模式下有效。傳遞一個“@string/name”資源,需要在需要在資源文件中定義<string.../>。
Spinner 常用事件:
● AdapterView.OnItemCLickListener:列表項被點擊時觸發(fā)。
● AdapterView.OnItemLongClickListener:列表項被長按時觸發(fā)。
● AdapterView.OnItemSelectedListener:列表項被選擇時觸發(fā)。
Spinner 數(shù)據(jù)綁定:
● 使用xml設(shè)置數(shù)組資源,簡單方便但是不靈活,如果只是顯示固定的簡單數(shù)據(jù)可以使用。
● 使用 adapter 接口設(shè)置,最常見的方式,動態(tài)加載靈活,可以設(shè)置各種樣式和數(shù)據(jù)來源。
XML 文件結(jié)構(gòu)(一般寫在string.xml文件中)
<resource> <string-array name="arrayname"> <item>item1</item> <item>item2</item> <item>item3</item> </string-array> <resource>
對于簡單的數(shù)據(jù)可以使用 ArrayAdapter 來設(shè)置適配器,但是對于稍微復(fù)雜的數(shù)據(jù) ArrayAdapter 就無法滿足需求了,這時需要使用 SimpleAdapter 來做適配。
SimpleAdapter 適配器同樣基礎(chǔ)自 Adapter,他可以映射靜態(tài)的 XML 格式的布局文件到視圖中??梢灾付?List<Map<P,T>> 格式數(shù)據(jù),list 的數(shù)據(jù)對應(yīng) Spinner 中的每一行,Map 中的數(shù)據(jù)對應(yīng)沒一條數(shù)據(jù) mSpinner = (Spinner)findViewById(R.id.sp_bank);
mSpinner = (Spinner)findViewById(R.id.sp_bank);
banklist = (List<String>) resultMap.get("list");
//將可選內(nèi)容與ArrayAdapter連接起來
adapter = new ArrayAdapter<String>(self, R.layout.simple_spinner_item, banklist);
//設(shè)置下拉列表的風(fēng)格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//將adapter 添加到spinner中
mSpinner.setAdapter(adapter);
//添加事件Spinner事件監(jiān)聽
mSpinner.setOnItemSelectedListener(new SpinnerSelectedListener());
class SpinnerSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str = parent.getItemAtPosition(position).toString();
//Toast.makeText(self, "你點擊的是:"+str, 2000).show();
bankname = str;
}
public void onNothingSelected(AdapterView<?> arg0) {
}
}
Spinner 彈出列表事件上是 listview,所以 listview 的各種方法都可以用在 Spinner 彈出窗口這里,當(dāng)時也可以自定義數(shù)據(jù)源,自定義 Adapter 繼承 BaseAdapter 實現(xiàn)更為靈活更為復(fù)雜的效果。
Spinner 在初始化時會自動調(diào)用一次 OnItemSelectedListener 事件,這是因為系統(tǒng)會自動加載默認(rèn)值造成的。
解決方法:手動添加默認(rèn)值,這里需要主要調(diào)用順序,必須在注冊方法之前調(diào)用。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android MediaPlayer 音頻倍速播放 調(diào)整播放速度問題
這篇文章主要介紹了Android MediaPlayer 音頻倍速播放,調(diào)整播放速度,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
Android中自定義view實現(xiàn)側(cè)滑效果
這篇文章主要介紹了Android中自定義view實現(xiàn)側(cè)滑效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11
Android入門之ListView應(yīng)用解析(一)
這篇文章主要介紹了Android入門之ListView應(yīng)用,簡單說明了ListView的實現(xiàn),需要的朋友可以參考下2014-08-08
Android?進入Activity時如何禁止彈出軟鍵盤輸入法
這篇文章主要介紹了Android?進入Activity時如何禁止彈出軟鍵盤輸入法,文章圍繞主題展開具體內(nèi)容,需要的小伙伴可以參考一下2022-05-05
Android中ListView + CheckBox實現(xiàn)單選、多選效果
這篇文章主要介紹了Android中ListView + CheckBox實現(xiàn)單選、多選效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
Android Toolbar應(yīng)用欄使用方法簡介
App中應(yīng)用欄是十分常見的,通常應(yīng)用欄會顯示當(dāng)前頁面的標(biāo)題,還有一些操作按鈕,例如返回、搜索、掃碼等。本文介紹如何通過Toolbar實現(xiàn)應(yīng)用欄2022-12-12

