自定义 ListView Android

Posted

技术标签:

【中文标题】自定义 ListView Android【英文标题】:Custom ListView Android 【发布时间】:2011-09-12 10:48:13 【问题描述】:

我的自定义 ListView 有问题。

SimpleAdapter adapter = new SimpleAdapter(this,
  this.dh.selectAll(),
  R.layout.custom_row_view,
  new String[] "Icon","Chance","TeamID",
  new int[] R.id.text1,R.id.text2, R.id.text3);
  setListAdapter(adapter);

这是我的简单适配器。我想把图标放进去,可以吗?

【问题讨论】:

在 SO 或 Google 中发布问题之前,您似乎没有在 Google 上搜索过。 是的,你可以,但你应该更具体......你如何提供图标?由乌里?资源ID? @Kartik 我们实际上不知道他是否想使用延迟图像加载 @Selvin,谢谢解答,我有很多图标的文件夹(drawable/flags/Albania.png),我想把图标放入我的simpleadapter @Kartik - 这个问题不是重复的,即使他可以使用相同的答案。 【参考方案1】:

是的,你可以...

MyList.java:

package com.TestActivity;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;


public class MyList extends ListActivity 

    final static ArrayList<HashMap<String, ?>> data = new ArrayList<HashMap<String, ?>>();

    static
        HashMap<String, Object> row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_albania);
        row.put("Chance", "65%");
        row.put("TeamID", "Albania");
        data.add(row);
        row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_rpa);
        row.put("Chance", "55%");
        row.put("TeamID", "RPA");
        data.add(row);
        row  = new HashMap<String, Object>();
        row.put("Icon", R.drawable.flags_polska);
        row.put("Chance", "100%");
        row.put("TeamID", "Polska :)");
        data.add(row);
    
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        SimpleAdapter adapter = new SimpleAdapter(this,
                data,
                  R.layout.row,
                  new String[] "Icon","Chance","TeamID",
                  new int[]  R.id.imageView1, R.id.textView1,R.id.textView2);
       setListAdapter(adapter);

    

res/layout/row.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_
  android:layout_>
    <ImageView android:layout_ android:layout_ android:src="@drawable/icon" android:id="@+id/imageView1"/>
    <TextView android:text="TextView" android:id="@+id/textView1" android:layout_ android:layout_/>
    <TextView android:text="TextView" android:id="@+id/textView2" android:layout_ android:layout_/>
</LinearLayout>

将带有标志的 pngs 放到 res/drawable-hdpi/

flags_albania.png flags_rpa.png flags_polska.png

你会得到这样的东西:

【讨论】:

以上是关于自定义 ListView Android的主要内容,如果未能解决你的问题,请参考以下文章

自定义 ListView Android

Android自定义ListView:添加搜索功能

Android 自定义 ListView/Adapter

转Android自定义Adapter的ListView的思路及代码

带有 Intent 和自定义 Listview 的 Android

Android listview - 获取自定义列表视图的文本