Spinner下拉列表裝填數據的兩種方法

Android中,給Spinner組件裝填數據比較常見的有以下兩種方法:


一、編程載入列表數據
首先,在佈局文件main.xml中添加spinner組件,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView   
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="Spinner_1"
    />
<Spinner
    android:id="@+id/spinner_1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>


然後,在MainActivity.java中,自定義方法add_list()進行Spinner的數據裝載,代碼如下:

public class MainActivity extends Activity { 
    private static final String[] mCountries = { "中國", "美國", "日本", 
            "俄羅斯", "加拿大" }; 
    Spinner sp = null; 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        add_list(); 
    } 
 
    private void add_list() { 
        sp = (Spinner) findViewById(R.id.spinner_1); 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_spinner_item, mCountries); 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp.setAdapter(adapter); 
    } 
}


二、在XML中預定義列表數據
 首先,在strings.xml中定義列表數據,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">SpinnerTest</string>
     
    <string-array name="countries">
        <item>中國</item>
        <item>美國</item>
        <item>日本</item>
        <item>俄羅斯</item>
        <item>加拿大</item>
    </string-array>
</resources>

其次,在佈局文件main.xml中添加spinner組件,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView   
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="Spinner_1"
    />
<Spinner
    android:id="@+id/spinner_1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

最後,在MainActivity.java中,進行Spinner的數據裝載,代碼如下:
public class MainActivity extends Activity { 
    Spinner sp = null; 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        sp = (Spinner) findViewById(R.id.spinner_1); 
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( 
                this, R.array.countries, 
                android.R.layout.simple_spinner_dropdown_item); 
        sp.setAdapter(adapter); 
    } 
}


也可以直接在xml中將數組設置進去,代碼如下:

  <Spinner 
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:spinnerMode="dropdown"
                 android:entries="@array/countries" />
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章