這篇“Android中如何使用Spinner實(shí)現(xiàn)一個(gè)列表選擇框”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android中如何使用Spinner實(shí)現(xiàn)一個(gè)列表選擇框”文章吧。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比夏津網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式夏津網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋夏津地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
Android Spinner列表選擇框的應(yīng)用
Spinner 是 Android 的列表選擇框,不過(guò) spinner 并不需要顯示下拉列表,而是相當(dāng)于彈出一個(gè)菜單供用戶選擇。
Spinner 屬性:
● android:spinnerMode:列表顯示的模式,有兩個(gè)選擇,為彈出列表(dialog)以及下拉列表(dropdown),如果不特別設(shè)置,為下拉列表。
● android:entries:使用
● android:prompt:對(duì)當(dāng)前下拉列表設(shè)置標(biāo)題,僅在dialog模式下有效。傳遞一個(gè)“@string/name”資源,需要在需要在資源文件中定義
Spinner 常用事件:
● AdapterView.OnItemCLickListener:列表項(xiàng)被點(diǎn)擊時(shí)觸發(fā)。
● AdapterView.OnItemLongClickListener:列表項(xiàng)被長(zhǎng)按時(shí)觸發(fā)。
● AdapterView.OnItemSelectedListener:列表項(xiàng)被選擇時(shí)觸發(fā)。
Spinner 數(shù)據(jù)綁定:
● 使用xml設(shè)置數(shù)組資源,簡(jiǎn)單方便但是不靈活,如果只是顯示固定的簡(jiǎn)單數(shù)據(jù)可以使用。
● 使用 adapter 接口設(shè)置,最常見(jiàn)的方式,動(dòng)態(tài)加載靈活,可以設(shè)置各種樣式和數(shù)據(jù)來(lái)源。
XML 文件結(jié)構(gòu)(一般寫在string.xml文件中)
- item1
- item2
- item3
對(duì)于簡(jiǎn)單的數(shù)據(jù)可以使用 ArrayAdapter 來(lái)設(shè)置適配器,但是對(duì)于稍微復(fù)雜的數(shù)據(jù) ArrayAdapter 就無(wú)法滿足需求了,這時(shí)需要使用 SimpleAdapter 來(lái)做適配。
SimpleAdapter 適配器同樣基礎(chǔ)自 Adapter,他可以映射靜態(tài)的 XML 格式的布局文件到視圖中??梢灾付?List
mSpinner = (Spinner)findViewById(R.id.sp_bank); banklist = (List) resultMap.get("list"); //將可選內(nèi)容與ArrayAdapter連接起來(lái) adapter = new ArrayAdapter (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)聽(tīng) 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, "你點(diǎn)擊的是:"+str, 2000).show(); bankname = str; } public void onNothingSelected(AdapterView> arg0) { } }
Spinner 彈出列表事件上是 listview,所以 listview 的各種方法都可以用在 Spinner 彈出窗口這里,當(dāng)時(shí)也可以自定義數(shù)據(jù)源,自定義 Adapter 繼承 BaseAdapter 實(shí)現(xiàn)更為靈活更為復(fù)雜的效果。
Spinner 在初始化時(shí)會(huì)自動(dòng)調(diào)用一次 OnItemSelectedListener 事件,這是因?yàn)橄到y(tǒng)會(huì)自動(dòng)加載默認(rèn)值造成的。
解決方法:手動(dòng)添加默認(rèn)值,這里需要主要調(diào)用順序,必須在注冊(cè)方法之前調(diào)用。
//在事件注冊(cè)之前調(diào)用,一般指定第0個(gè)為默認(rèn)值 spinner.setSelection(0, true);
以上就是關(guān)于“Android中如何使用Spinner實(shí)現(xiàn)一個(gè)列表選擇框”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。