Hello Views之Spinner(yaozq翻译,仅供参考)
Spinner是一種類似于下拉列表的widget。
在這個教程中,你將創建一個簡單的用于展示星球列表的spinner組件。當選擇列表中的一項時,將會彈出一個表示所選項的toast信息。下面是具體步驟:
1,新建一個名為HelloSpinner的項目。
2,打開res/layout/main.xml文件,并將下面的內容插入進去:
<?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>
有一點要注意的是TextView的android:text屬性和Spinner的android:prompt屬性都引用了相同的字符串資源。這個字符串是被用來做spinner的標題的。當應用于Spinner的時候,這個字符串文本將出現在現則列表的的最上部。
3,在res/values目錄下創建一個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>標簽<string>是前面TextView和Spinner都引用的標題字符串。<string-array>元素定義了將要在Spinner中列出的字符串列表。
4,打開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); }在設置main.xml文件作為content view之后,又通過findViewById(int)找到Spinner組件。然后createFromResource()方法創建了一個新的ArrayAdapter,這個ArrayAdapter將用于初始Spinner列表的字符串數組中的每一個item綁定上。R.array.planets_array ID引用了在上面定義的string_array,而android.R.layout.simple_spinner_item這個ID則引用了由系統定義的一個標準spinner樣式(appearance)。然后調用setDropDownViewResource(int)來定義當spinner被打開的時候每一個item的appearance(simple_spinner_dropdown_item是系統定義另一個標準布局)。最后通過調用setAdapter(T),ArrayAdapter和它所有的item就關聯在一起了。
5,通過實現AdapterView.OnItemSelectedListener創建一個內部類。當Spinner中的item被選擇的時候這個函數將會提供一個回調方法。下面就是這個內部類:
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. } }
這個AdapterView.OnItemSelectedListerer需要onItemSelected()和onNothingSelected()回調方法。前面那個回調方法將在AdapterView中的item被選擇的時候調用,這時,一個Toast信息將會被彈出,后面的回調方法會在when a selection disappears from the AdapterView時被調用,這個例子中不考慮。
6,然后將這個MyOnItemSelectedListener應用到Spinner,方法是在onCreate()方法中添加如下代碼:
spinner.setOnItemSelectedListerner(new MyOnItemSelectedListener() );這樣就創建了一個MyOnItemSelectedListener匿名內部類,并被設為Spinner的監聽器。
7,運行程序。得到如下結果:
轉載于:https://www.cnblogs.com/yaozq/archive/2012/03/01/2375057.html
總結
以上是生活随笔為你收集整理的Hello Views之Spinner(yaozq翻译,仅供参考)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到阿飘怎么回事
- 下一篇: 梦到别人醉酒呕吐是怎么回事