7

我正在使用如下列表视图

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");

在加载列表视图时,我将显示该地图中的名称并设置相关的图像背景,从该地图中获取图像名称并从可绘制文件夹中加载它。

这个怎么做?

像下面这样的布局跳跃

在此处输入图像描述

4

3 回答 3

16

这是您的自定义 Listview的教程

现在在适配器的 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};

还要确保您的“图像”数组的长度必须与列表中的项目相同。

于 2013-10-27T07:58:28.327 回答
1

看看这个向文本视图添加 2 个按钮 您基本上需要一个自定义适配器来为您的列表提供一个自定义适配器,并且需要覆盖它的 getView 方法,您可以在其中指定项目的 UI 布局。

对于您发布的代码,不要使用 ArrayAdapter 的实例,而是创建您自己的从 ArrayAdapter 派生的适配器 YourData 应该是一个包含对项目文本和项目图像的引用的类。

现在覆盖自定义适配器类中的 getView 方法。该方法用于使用来自的位置参数填充项目的 UI

View getView(int position, View convertView, ViewGroup parent)

您可以使用 ArrayAdapter.getItem 获取该项目

有关更多详细信息,请参阅上面的链接和http://developer.android.com/reference/android/widget/ArrayAdapter.html

于 2013-10-27T07:45:51.003 回答
0

看看这个例子here它展示了如何在android的listview中加载图像,你需要扩展BaseAdapter来创建自定义适配器

于 2013-10-27T07:53:39.707 回答