Adapter用法之一的ArrayAdapter,ArrayAdapter可將一組數組傳入ListView中去顯示出來,
特別注意的是,在ArrayAdapter中已經有定義好一些List 的樣式可以直接使用,
如下所示:
- android.R.layout.simple_list_item_1 :一行text
- android.R.layout.simple_list_item_2 :一行text較大,一行text較小
- android.R.layout.simple_list_item_single_choice :單選
- android.R.layout.simple_list_item_multiple :多選按鈕
- android.R.layout.simple_list_item_checked :勾選
下列為簡易程式碼:
主程式java檔<ListActivity>
package terence.testlistview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class ListActivity extends Activity { private ListView listView; private ArrayAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview1); listView = (ListView) findViewById(R.id.listView1); //取出string.xml內的字串 String[] item = getResources().getStringArray(R.array.array); // 清單陣列 adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1); //將取出的字串加入adapter adapter.addAll(item); // adapter.add("紅豆"); // adapter.add("黑豆"); // adapter.add("綠豆"); // adapter.add("花豆"); // adapter.add("毛豆"); // adapter.add("土豆"); // adapter.add("芋頭"); // adapter.add("地瓜"); //listview顯示出定義好的adapter listView.setAdapter(adapter); //listView被被touch時要作的事 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { // TODO Auto-generated method stub ListView listView = (ListView) arg0; Toast.makeText(ListActivity.this,"ID:" + arg3 +"選單文字:"+ listView.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); } }); } }
adapter內的item可以直接在程式碼內加入,如同註解掉的部份一樣,但本次簡易範例使用strings.xml來設定我們要的item項目。
layout xml檔<listview1>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="match_parent" ></ListView> </LinearLayout>
strings.xml檔
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">TestListView</string> <!-- listView要用的item --> <string-array name="array"> <item>item1</item> <item>item2</item> <item>item3</item> </string-array> </resources>
全站熱搜
留言列表