Hello Views之Spinner(yaozq翻译,仅供参考)
Spinner是一種類似于下拉列表的widget。
在這個(gè)教程中,你將創(chuàng)建一個(gè)簡(jiǎn)單的用于展示星球列表的spinner組件。當(dāng)選擇列表中的一項(xiàng)時(shí),將會(huì)彈出一個(gè)表示所選項(xiàng)的toast信息。下面是具體步驟:
1,新建一個(gè)名為HelloSpinner的項(xiàng)目。
2,打開(kāi)res/layout/main.xml文件,并將下面的內(nèi)容插入進(jìn)去:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="@string/planet_prompt"
/>
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt"
/>
</LinearLayout>
有一點(diǎn)要注意的是TextView的android:text屬性和Spinner的android:prompt屬性都引用了相同的字符串資源。這個(gè)字符串是被用來(lái)做spinner的標(biāo)題的。當(dāng)應(yīng)用于Spinner的時(shí)候,這個(gè)字符串文本將出現(xiàn)在現(xiàn)則列表的的最上部。
3,在res/values目錄下創(chuàng)建一個(gè)stings.xml文件,并按如下方式編輯:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="planet_prompt">Choose a planet</string> <string-array name="planets_array"><item>Mercury</item><item>Venus</item><item>Earth</item><item>Mars</item><item>Jupiter</item><item>Saturn</item><item>Uranus</item><item>Neptune</item><string-array> </resources>標(biāo)簽<string>是前面TextView和Spinner都引用的標(biāo)題字符串。<string-array>元素定義了將要在Spinner中列出的字符串列表。
4,打開(kāi)HelloSpinner.java文件,并將下面的代碼插入到onCreate()方法中:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); }在設(shè)置main.xml文件作為content view之后,又通過(guò)findViewById(int)找到Spinner組件。然后createFromResource()方法創(chuàng)建了一個(gè)新的ArrayAdapter,這個(gè)ArrayAdapter將用于初始Spinner列表的字符串?dāng)?shù)組中的每一個(gè)item綁定上。R.array.planets_array ID引用了在上面定義的string_array,而android.R.layout.simple_spinner_item這個(gè)ID則引用了由系統(tǒng)定義的一個(gè)標(biāo)準(zhǔn)spinner樣式(appearance)。然后調(diào)用setDropDownViewResource(int)來(lái)定義當(dāng)spinner被打開(kāi)的時(shí)候每一個(gè)item的appearance(simple_spinner_dropdown_item是系統(tǒng)定義另一個(gè)標(biāo)準(zhǔn)布局)。最后通過(guò)調(diào)用setAdapter(T),ArrayAdapter和它所有的item就關(guān)聯(lián)在一起了。
5,通過(guò)實(shí)現(xiàn)AdapterView.OnItemSelectedListener創(chuàng)建一個(gè)內(nèi)部類。當(dāng)Spinner中的item被選擇的時(shí)候這個(gè)函數(shù)將會(huì)提供一個(gè)回調(diào)方法。下面就是這個(gè)內(nèi)部類:
public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent,View view, int pos, long id) { Toast.makeText(parent.getContext(), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } public void onNothingSelected(AdapterView<?> parent) { // Do nothing. } }
這個(gè)AdapterView.OnItemSelectedListerer需要onItemSelected()和onNothingSelected()回調(diào)方法。前面那個(gè)回調(diào)方法將在AdapterView中的item被選擇的時(shí)候調(diào)用,這時(shí),一個(gè)Toast信息將會(huì)被彈出,后面的回調(diào)方法會(huì)在when a selection disappears from the AdapterView時(shí)被調(diào)用,這個(gè)例子中不考慮。
6,然后將這個(gè)MyOnItemSelectedListener應(yīng)用到Spinner,方法是在onCreate()方法中添加如下代碼:
spinner.setOnItemSelectedListerner(new MyOnItemSelectedListener() );這樣就創(chuàng)建了一個(gè)MyOnItemSelectedListener匿名內(nèi)部類,并被設(shè)為Spinner的監(jiān)聽(tīng)器。
7,運(yùn)行程序。得到如下結(jié)果:
轉(zhuǎn)載于:https://www.cnblogs.com/yaozq/archive/2012/03/01/2375057.html
總結(jié)
以上是生活随笔為你收集整理的Hello Views之Spinner(yaozq翻译,仅供参考)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到阿飘怎么回事
- 下一篇: 梦到别人醉酒呕吐是怎么回事