2014-01-08 15 views
0

我一直在嘗試學習如何在Eclipse中使用「主/細節流」來開發Android應用程序。Android應用程序:默認模板中的自定義數組適配器,不適用於對象

我的問題是,我不明白如何創建我自己的ArrayAdapter(所以我可以改變每一行的顏色等等),幾乎看起來相同,但將採取「LibHome.ITEMS」(一個對象?不是一個簡單的數組

我真的不能明白如何使這項工作,我也不想盲目地適應另一種解決方案,而不是學習

setListAdapter(
     new ArrayAdapter<LibHome.GenItem>(
      getActivity(), 
      android.R.layout.simple_list_item_activated_1, 
      android.R.id.text1, 
      LibHome.ITEMS 
     ) 
    ); 

LibHome.java:。

package com.example.prac2.lib; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

public class LibHome { 

    /** 
    * Create an Array 
    */ 
    public static List<GenItem> ITEMS = new ArrayList<GenItem>(); 

    /** 
    * A map of sample (dummy) items, by ID. 
    */ 
    public static Map<String, GenItem> ITEM_MAP = new HashMap<String, GenItem>(); 

    /** 
    * Add Items to the array 
    */ 
    static { 
     // Items! 
     addItem(new GenItem("1", "Title1", "File1")); 
     addItem(new GenItem("2", "Title2", "File2")); 
     addItem(new GenItem("2", "Title3", "File3")); 

    private static void addItem(GenItem item) { 
     ITEMS.add(item); 
     ITEM_MAP.put(item.id, item); 
    } 

    /** 
    * A dummy item representing a piece of content. 
    */ 
    public static class GenItem { 
     public String id; 
     public String content; 
     public String file; 

     public GenItem(String id, String content, String file) { 
      this.id = id; 
      this.content = content; 
      this.file = file; 
     } 

     @Override 
     public String toString() { 
      return content; 
     } 
    } 

} 
+0

http://stackoverflow.com/questions/20611123/listview-subobject-clicka BLE-confilct。檢查它是否有幫助 – Raghunandan

回答

2

爲了達到這個目的,您需要創建一個自定義Adapter類,該類需要LibHome項目。要做到這一點,你會做這樣的事情,

public class LibAdapter extends ArrayAdapter<LibHome> { 
public LibAdapter(Context context, int textViewResourceId, ArrayList<LibHome> objects) { 
    super(context, textViewResourceId, objects); 
    this.objects = objects; 
} 


public View getView(int position, View convertView, ViewGroup parent){ 
      //Here is where you would change the colors of the text. 
      return v; 

} 

}

有幾個很好的教程在那裏,這將幫助你..這裏有一些..

相關問題