2011-07-23 28 views
0

我是一個新的android開發人員。我已經創建了一個測驗應用程序,我需要以串行方式在列表視圖中顯示問題。我的所有問題和選項都是圖像。我如何在列表視圖中設置圖像。我只想在列表視圖中設置圖像而不是任何文本。請幫幫我。問題在列表視圖中設置圖像android應用程序

回答

2

在主XML文件中像這樣創建一個列表視圖:

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/masterLayout" 
android:orientation="vertical" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
    <ListView 
    android:id="@+id/list" 
    android:cacheColorHint="#00000000" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

然後創建另一個XML文件名爲child_layout:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
    <ImageView android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 
在活動類

然後初始化列表視圖:

ListView listView1 = (ListView)findViewById(R.id.list); 

創建一個擴展baseadapter並修改所有必要方法的類您需要的方式(創建將可繪製列表作爲參數的構造函數,並創建一個設置爲提供的列表的全局變量)。那麼就在你的活動類以下內容:

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    Drawable image = images.get(position); 
    if (convertView == null) 
    { 
     LayoutInflater infalInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.child_layout, null); 
    } 
    ImageView imageView = (ImageView)convertView.findViewById(R.id.image); 
    imageView.setBackgroundDrawable(image); 

    return convertView; 
} 

ListView項點擊收聽:

listView1.setOnItemClickListener(new ListView.OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> listView, View itemView, int position, long itemId) 
    { 
     String message = "example text: " + position; 
     Toast.makeText(MyActivity.this, message, Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0


ArrayList<Drawable> images = new ArrayList<Drawable>(); // add to the list here CustomListAdapter adapter = new CustomListAdapter(images); listView1.setAdapter(adapter); 

在getView在customlistadapter類做到這一點()函數你好。我在哪裏得到'上下文'變量? –

+0

與圖像列表一樣,您也必須將活動的上下文作爲參數傳遞給列表適配器的構造函數。然後在列表適配器中,創建一個全局上下文變量並將其設置爲在構造函數中提供給您的那個變量。 –

+0

我做到了。只是要求確認。 :) –

0

您需要創建一個自定義ListAdapter。一個例子在API samples中給出。只需添加一個ImageView作爲自定義適配器的佈局,就可以開始了。搜索更多的例子。

0

帶一個主佈局xml文件,您必須在該文件中提供該文件。 像這樣

 <List 
     android:width="wrap_content" 
     android:height="wrap_content" 
     android:id="@+id/list" 
    /> 

,並採取其他配置XML文件

<ImageView 
    android:width="wrap_content" 
    android:height="wrap_content"/> 

在適配器膨脹包含ImageView的這個XML文件。以便您可以在列表中獲取圖像

相關問題