2011-10-27 54 views
2

我發現這個例子中創建自定義列表視圖:編程方式創建列表視圖沒有XML佈局

public class UsersListActivity extends ListActivity{  
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState);   
      String[] statesList = {"listItem 1", "listItem 2", "listItem 3"}; 
      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, 
        statesList)); 
      ListView lv = getListView(); 

      lv.setOnItemClickListener(new OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 


        Toast.makeText(getApplicationContext(), 
        "You selected : "+((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
    } 
      }); 

     } 

} 

然而,他們使用於各行的XML佈局。這是好的做法嗎?如果我想以編程方式創建自己的佈局,並在適配器中使用它,該怎麼辦?

我想這會更容易只使用XML佈局,但它會很高興知道

回答

0

這是使用默認的Android佈局的最佳實踐,如果你不想要你的自定義視圖。如果您想使用自定義列表,則可以始終從xml中將其充滿並根據列表項呈現數據。

1

更改適配器這樣

setListAdapter(new ArrayAdapter(this, 
        android.R.layout.simple_expandable_list_item_1, statesList)); 
+0

那麼這個:R.layout.list_item指向一個xml專門爲每一行。如果我想要一個方法或一個新的類來處理佈局呢?我將如何將其定位到我的適配器中? – Adam

相關問題