2012-09-06 80 views
2

我創建了一個包含ImageView和TextView的簡單列表,而不使用自定義適配器類。我捅圍繞互聯網,發現大多數的自定義列表中使用一個單獨的適配器類創建...這是我的佈局列表行...創建自定義適配器類需要什麼?

list_row.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <ImageView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" 
     android:layout_marginRight="15dp"/> 

    <TextView android:id="@+id/list_item_id" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="15dp" 
     android:textSize="15sp"/> 

</LinearLayout> 

MainActivity。 java的

//Taking reference of a ListView 
    ListView listView = (ListView) findViewById(R.id.list_view); 

    //Setting up ArrayList to feed ArrayAdapter 
    ArrayList<String> fruits= new ArrayList<String>(); 
    fruits.add("Apple"); 
    fruits.add("Mango"); 
    fruits.add("Strawberries"); 
    fruits.add("Grapes"); 

    //Setting up ArrayAdapter 
    ArrayAdapter<String> adapter = new ArrayAdapter<String> 
      (this, R.layout.list_row, R.id.list_item_id, fruits); 
    listView.setAdapter(adapter); 

上面的代碼工作正常... 我只是想知道何時創建單獨的適配器類有什麼用呢? 換句話說,創建一個獨立的Adapter類有什麼好處? 任何幫助將不勝感激...提前 謝謝...

回答

2

你即使設置爲每行TextViewImageViewListView?因爲你好像不是。您將列表中的每一行都放入相同的圖像,並且文本正由適配器設置。

如果你想發送多個Lists到你的ArrayAdapter,你將不得不編寫自己的適配器。就像您爲ListView獲取圖片和文字一樣。你將不得不編寫自己的ArrayAdapter,它將設置文字的圖像,通過將它們充填到每個rowView中並附上相應的文字和圖像。

而且這也同樣適用於每一行更復雜的用戶界面,像這樣的: http://cloud.addictivetips.com/wp-content/uploads/2012/06/Reddit-Android-Reddit-Is-Fun1.jpg

每一行都有多個TextViewsButtons並從row.xml

+1

膨脹的ImageView感謝ü爲你的解釋?它幫助了很多 – Riten