随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
下面通过一个实例演示ArrayAdapter适配器和SimpleAdapter适配器以及ListView的使用,代码如下:
Activity:
package com.lovo.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import com.lovo.R;
public class TestListActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_test_listview);
// 放在listView中的文本内容
String[] strAry = new String[] { "图片1", "图片2", "图片3", "图片4" };
// 放在listView中的图片资源id
int[] imgAry = new int[] { R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4 };
// 创建List集合对象
List list = new ArrayList();
// 为List集合添加数据
for (int i = 0; i < strAry.length; i++) {
Map map = new HashMap();
map.put("image", imgAry[i]);
map.put("text", strAry[i]);
list.add(map);
}
// 参数1:context - 上下文对象
// 参数2:data - 设置到listView的数据集合
// 参数3:resource - 放在listView中每一行的布局资源文件
// 参数4:from - 指定每一行数据的键(和to里面的id对应)
// 参数5:to - 指定每一行数据应用到哪个组件上
SimpleAdapter adapter = new SimpleAdapter(this, list,
R.layout.listview_content, new String[] { "image", "text" },
new int[] { R.id.listview_content_img,
R.id.listview_content_text });
// 如果只有文本可以使用下面的ArrayAdapter适配器
// ArrayAdapter adapter = new ArrayAdapter(this,
// android.R.layout.simple_list_item_checked, strAry);
// 得到ListView对象
ListView listView = (ListView) findViewById(R.id.main_test_listview);
// 设置ListView的内容
listView.setAdapter(adapter);
}
}
布局XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!--
divider:分割符
dividerHeight:分隔符高度
entries:指定显示内容的资源
-->
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#f00"
android:dividerHeight="2dp"
android:id="@+id/main_test_listview"
></ListView>
</LinearLayout>
显示ListView每一行数据的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/listview_content_img"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/listview_content_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
附上图片效果: