2011年4月11日 星期一

ListView物件

ListView物件
表單,用於顯示複數以上的物件。
常見的應用例如"檔案管理","系統功能選項"。

一般的做法
    // layout裡為一個TextView
    adapter = new ArrayAdapter<String>(this, R.layout.device_name);
   
    ListView lv= (ListView) findViewById(R.id.list);
    // 此行程式碼會將list的資料更新
    lv.setAdapter(adapter);
    lv.setOnItemClickListener(select);
   
    // 在ListView裡加入項目
    adapter.add("item1");
    adapter.add("item2");
    adapter.add("item3");
    ........

    private OnItemClickListener select= new OnItemClickListener() {
        public void onItemClick(AdapterView<?> av, View v, int pos, long arg3) {
       
        }
    };

另一種方法,用SimpleAdapter
    public void onCreate(Bundle savedInstanceState) {
        ..........
        listview = (ListView)findViewById(R.id.list);
        listview.setOnItemClickListener(listen_click);
        update_list();
        ...........
    }
   
    private void update_list() {
        SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.listitem,
            new String[]{"info","img"}, new int[]{R.id.info,R.id.img}); 
            listview.setAdapter(adapter);
    }

    private List<Map<String, Object>> getData() {
        int i;
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Map<String, Object> map;
       
        map = new HashMap<String, Object>();
        map.put("info", "name"); 
        map.put("img", R.drawable.back);
        list.add(map);
       
        return list;
    }
   
    private OnItemClickListener listen_click = new OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
       
        }
   };

沒有留言:

張貼留言