2013-10-27 97 views
4

我使用列表視圖如下Android的自定義佈局的ListView

String[] Shows = new String[] { "Dexter", "Breaking Bad", "The Big Bang Theory", "Leverage"}; 
ListView tv_show_list = (ListView) view_tvshowAddNew.findViewById(R.id.lv_tv_show_list); 

ArrayAdapter<String> showNameAdapter = new ArrayAdapter<String>(getActivity(), R.layout.tv_show_each_show_name, Shows); 

tv_show_list.setAdapter(showNameAdapter); 

現在我tv_show_each_show_name XML是像下面

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="58dp" 
    android:background="@drawable/ic_launcher" 

    > 
</TextView> 

我想現在要做的是讓每一個顯示相關聯的名字一張圖片,也許把它放在地圖上,如: -

Map mMap = new HashMap(); 
mMap.put("Dexter", "imageDexter.png"); 
mMap.put("Breaking Bad", "imageDexter.png"); 

並加載列表視圖時,我會顯示t他從該地圖命名並設置相關的圖像背景,從該地圖獲取圖像名稱並從可繪製文件夾中加載。

如何做到這一點?

跳躍像佈局如下

enter image description here

+0

我相信這是相當中肯: http://stackoverflow.com/questions/8166497/custom-adapter-for-list-view – rynojvr

回答

10

這裏是您的自定義列表視圖一個tutorial現在

用於關於設定不同的圖像,每個項目,您getView()內的適配器的方法

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    textView.setText(values[position]); 
    // Change the icon for Windows and iPhone 
    String s = values[position]; 
    imageView.setImageResource(images[position]); 
    return rowView; 
    } 

您的影像陣列會是這樣

int[] images={R.drawable.green_button,R.drawable.ic_launcher,R.drawable.shape,R.drawable.splash}; 

此外請確保您的'圖像'數組的長度必須與列表中的項目相同。

+2

也應該使用視圖持有人模式。 – Raghunandan

+1

也打算推薦vogella它是非常可以跟從 – Manny265

+0

初學者非常非常有用的教程鏈接。非常感謝。 :) –

1

看這個Adding 2 buttons to the text view 你基本上需要一個定製的適配器列表,並需要重寫它的getView方法,在這裏你可以指定該項目的UI佈局。

對於您發佈的代碼,而不是使用ArrayAdapter的實例,請創建您自己的適配器,從ArrayAdapter派生 YourData應該是包含對項目文本和項目圖像的引用的類。

現在覆蓋自定義Adapter類中的getView方法。 該方法用於從

查看getView(INT位置,查看convertView,ViewGroup以及父母)填充使用位置參數項的UI

可以使用ArrayAdapter.getItem

獲得該項目欲瞭解更多詳情,請參閱上面的鏈接和http://developer.android.com/reference/android/widget/ArrayAdapter.html

+0

我是新android開發。我需要更多細節。你能詳細說明你的答案嗎?謝謝 – LynAs

0

看看這個例子here它顯示瞭如何加載圖像在Android的ListView控件,你需要擴展了BaseAdapter創建自定義適配器