ListView +资源>图像+文字

时间:2012-07-26 17:32:14

标签: android xml

我有这个

setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
                R.array.listOfCountries, R.layout.row));

它从这个资源xml

创建基本列表视图
<string-array name="listOfCountries">
        <item>Bulgaria</item>
        <item>Canada</item>
        <item>Croatia</item>
        <item>USA</item>
        <item>UK</item>
    </string-array>

但我需要在每个国家添加当前图像,例如保加利亚我想添加bulagria的旗帜等等。

但我需要在资源中使用这个字符串数组存储,因为我想为更多语言进行本地化。

谢谢

1 个答案:

答案 0 :(得分:1)

您必须通过继承BaseAdapter并覆盖getView(),getCount(),getItem()等方法来创建自己的ListAdapter。

http://thinkandroid.wordpress.com/2010/01/13/custom-baseadapters/

像这样创建一个名为Country的类:

public class Country {
   public String name;
   public int flagResourceId;

   public Country( String name, int flagResourceId ) {
      this.name = name;
      this.flagResourceId = flagResourceId;
   }
}

然后,您可以在自定义BaseAdapter中使用它,并将该对象绑定到getView()中的View中。创建List的内容可以在onCreate()期间完成,也可以在Application中的类中完成。