[英]Android: How do I assign each of my ListView list items an individual icon?
我对Android开发非常陌生,它搜索和阅读各种教程,并在互联网上使用不同的代码部分,以使我在使用时理解它。 如果我的解释不太好,请原谅我。
目前,我有一个由4个列表项创建的列表,我想为每个列表项分配一个不同的图标,但是,我不知道该怎么做,也不知道要搜索什么。
这是代码:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mainListView">
</ListView>
</LinearLayout>
row.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rowTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
FirstList.java
import java.util.ArrayList;
import java.util.Arrays;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class FirstList extends Activity {
private ListView mainListView;
private ArrayAdapter<String> myListAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainListView = (ListView) findViewById( R.id.mainListView);
String[] myList = new String[] {"List 1", "List 2", "List 3", "List 4"};
ArrayList<String> listObjects = new ArrayList<String>();
listObjects.addAll( Arrays.asList(myList));
myListAdapter = new ArrayAdapter<String>(this, R.layout.row, listObjects);
mainListView.setAdapter(myListAdapter);
}
}
作为新手,我将不胜感激您提供的任何意见,包括您可能会建议或批评我的代码的任何资源,我都不想从一开始就养成不良习惯!
谢谢。
您必须将ImageView添加到row.xml文件中(图像将在ImageView中呈现)-这应该不太困难。
您还必须创建一个自定义ArrayAdapter(扩展ArrayAdapter类)并重写getView方法-这是一项常见的任务,因此您应该轻松找到一些有关如何完成此操作的示例。 您还可以查看原始的ArrayAdapter类( ArrayAdapter ),以了解如何实现getView。 最后,您应该在getView方法中添加图像加载代码。
一种解决方案是使用SimpleAdapter 。 SimpleAdapter允许您将静态数据映射到复杂的视图。 您应该可以通过快速搜索找到许多示例,例如tutorial 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.