Adapter用法之一的ArrayAdapter,ArrayAdapter可將一組數組傳入ListView中去顯示出來,

特別注意的是,在ArrayAdapter中已經有定義好一些List 的樣式可以直接使用,

如下所示:

  1. android.R.layout.simple_list_item_1                        :一行text
  2. android.R.layout.simple_list_item_2                        :一行text較大,一行text較小
  3. android.R.layout.simple_list_item_single_choice    :單選
  4. android.R.layout.simple_list_item_multiple              :多選按鈕
  5. 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>

 

 

參考資料:資訊園Joomla藏經閣老鼠的隨手筆記ola的家

arrow
arrow
    全站熱搜

    fiend1120 發表在 痞客邦 留言(0) 人氣()