java - Android - 扩展 ListActivity 为每个项目添加图像?

标签 java android xml image listactivity

我想扩展我的简单 ListActivity,让每个项目旁边都有小图片。到目前为止,这是我的代码:

主.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight" /> 

主要 Activity .java:

public class MainActivity extends ListActivity {


/** Called when the activity is first created. */
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    // Create an array of Strings, that will be put to our ListActivity
    String[] names = new String[] { "some", "list", "items", "which", "each", "have", "their", "own", "image"};


    this.setListAdapter(new ArrayAdapter<String>(this,R.layout.main, names));


}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
    Object o = this.getListAdapter().getItem(position);
    String keyword = o.toString();
    Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_SHORT)
            .show();
}

我有大约 10 个项目(字符串),每个项目都有一张我想放在它旁边的图像,例如itemImage1.png, itemImage2.png, ..., 等

我该怎么做?

感谢您的帮助。

最佳答案

我不久前做过这个。使用此处找到的 LazyLoader lazyloader

看起来是关键代码,重写了getView方法

 public static class ViewHolder{

        public TextView text;

        public ImageView image;

    }



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

        View vi=convertView;

        ViewHolder holder;

        if(convertView==null){

            vi = inflater.inflate(R.layout.item, null);

            holder=new ViewHolder();

            holder.text=(TextView)vi.findViewById(R.id.text);;

            holder.image=(ImageView)vi.findViewById(R.id.image);

            vi.setTag(holder);

        }

        else

            holder=(ViewHolder)vi.getTag();



        holder.text.setText("item "+position);

        holder.image.setTag(data[position]);

        imageLoader.DisplayImage(data[position], activity, holder.image);

        return vi;

    }

关于java - Android - 扩展 ListActivity 为每个项目添加图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6636640/

相关文章:

java - 有没有办法在 Spring XML 中指定默认属性值?

javascript - 无法读取 null 的属性 'getElementsByTagName'

Java - 我应该在哪里初始化变量以提高内存效率?

android - 使用 .NET 和 Visual Studio 2017 开发 Android OpenGL ES 应用程序

java - onFling 和 LinearLayout

java - 从 SQLite 数据库中检索数据到 EditText

Android 在全屏显示来自 GridView 的 Url 图像

xml - XSL :FO float for displaying margin notes - breaks document

java - 按钮无法转换为节点,方法列表add(node)不适用

java - 面向对象编程 : adding features on the fly