ListView基本上

就是以row的方式去呈現畫面

最基本就是呈現文字

進階一點就是自訂layout並呈現多個component

基本上就長這樣子

跟大多數的View一樣

ListView呈現畫面也必須透過一個adapter

ListView只是設定框架

adapter負責記錄要呈現的資料

以及資料的layout

 

一個最基本的ListView設定如下:

ingredientList = (ListView)findViewById(R.id.crtItemList);
ingredientList.setOnItemClickListener(new OnItemClickListener(){
  @Override
  public void onItemClick(AdapterView adapter, View view, int position,long id) {
    String ingredient = adapter.getItemAtPosition(position);
    Intent next_intent = new Intent();
    Bundle bundle = new Bundle();
    bundle.putString("ingredient",ingredient);
    next_intent.putExtras(bundle);
    next_intent.setClass(CreateItemOneActivity.this, CreateItemTwoActivity.class);
    startActivityForResult(next_intent,0);
  }
});
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1);
adapter.add(meat[0]);
ingredientList.setAdapter(adapter);

先findViewById() link ingredientList這個ListView物件

透過setOnItemClickListener()設定ListView被點擊之後的動作

可透過第一個參數adapter的getItemAtPosition()來判斷

是哪一個item被點擊

 

AdapterView只是一個抽象物件

並不能拿來使用

真正要用必須用ArrayAdapter或是自己implementAdapter物件

ArrayAdapter是android已經implement的基礎adapter

可以簡單的再每一個row顯示一個component

ArrayAdapter<?>(Context context, int layout);

?:表示adapter要記錄的物件

context:通常傳入this (可以自行google context的概念)

layout:傳入要呈現的layout,內建的單行String是 "android.R.layout.simple_list_item_1",也可以傳入自行設計的xml檔

adapter可以通過add()去動態新增item

也可以通過remove()去移除item

更動後必須呼叫 notifyDataSetChanged()來reflesh畫面

創作者介紹
創作者 Klv 的頭像
Klv

值得嗎?

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