ListView布局 采用SimpleAdapter

public class ListView1Activity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_list_view1);
		overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
		
		ListView listview2=(ListView) findViewById(R.id.listview2);
		SimpleAdapter simpleadapt=new SimpleAdapter(this, getFriendData(),R.layout.listview,
				new String[]{"name","age","addr","pic"}, 
				new int[]{R.id.name,R.id.age,R.id.addr,R.id.pic});
	   listview2.setOnItemSelectedListener(new OnItemSelectedListener() {

		@Override
		public void onItemSelected(AdapterView<?> parent, View view,
				int position, long id) {
			Toast.makeText(getApplicationContext(), "你选了"+parent.getItemIdAtPosition(position)+"美女", 200).show();
		}

		@Override
		public void onNothingSelected(AdapterView<?> parent) {
			
		}
	
	   });
	   listview2.setAdapter(simpleadapt);
	}
	
	//获得数据
	private List<Map<String,Object>> getFriendData(){
	
		List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
		
		List<Friend> friendlist=new ArrayList<Friend>();
		friendlist.add(new Friend("晓雪","安徽",17,R.drawable.b));
		friendlist.add(new Friend("小艳","辽宁",19,R.drawable.c));
		friendlist.add(new Friend("君婕","安徽",17,R.drawable.d));
		friendlist.add(new Friend("邓攀","珠海",20,R.drawable.girl));
		friendlist.add(new Friend("小高","珠海",20,R.drawable.c));
		
		Map<String,Object> map=null;
		for (int i = 0; i < friendlist.size(); i++) {
		    map=new HashMap<String,Object>();
			map.put("name",friendlist.get(i).getName());
			map.put("addr",friendlist.get(i).getAddr());
			map.put("age", friendlist.get(i).getAge());
			map.put("pic", friendlist.get(i).getPic());
			list.add(map);
		} 
		return list;
	}

}

布局文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".ListView1Activity" 
    android:orientation="vertical" >

    <TextView
 		android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:text="listview之SimpleAdapt复杂练习" />

      <ListView  android:layout_height="wrap_content" android:layout_width="match_parent"
        android:choiceMode="singleChoice"  android:id="@+id/listview2" ></ListView>   
</LinearLayout>

自定义的布局文件如下:

<?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/pic" android:layout_width="65dp" android:layout_height="60dp" />
    <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" >
          <TextView  android:id="@+id/name" android:layout_height="wrap_content" android:layout_width="wrap_content"/>
          <TextView  android:id="@+id/age" android:layout_height="wrap_content" android:layout_width="wrap_content"/>
          <TextView  android:id="@+id/addr" android:layout_height="wrap_content" android:layout_width="wrap_content"/>
    </LinearLayout>
    
</LinearLayout>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答这个问题。 ListView 是一种常用的 Android 控件,可以用于展示一系列数据。SimpleAdapter 是一种适配器,可以将数据绑定到 ListView 上。 下面是实现列表项的步骤: 1. 准备数据 首先需要准备数据。一般来说,数据可以是一个 List<Map<String, Object>>,其中每个 Map 对应一个列表项,Map 中的键值对表示列表项的属性,比如标题、图片等。例如: ``` List<Map<String, Object>> data = new ArrayList<>(); Map<String, Object> item1 = new HashMap<>(); item1.put("title", "标题1"); item1.put("image", R.drawable.icon1); data.add(item1); Map<String, Object> item2 = new HashMap<>(); item2.put("title", "标题2"); item2.put("image", R.drawable.icon2); data.add(item2); ``` 2. 创建 SimpleAdapter 接下来需要创建 SimpleAdapter,将数据绑定到 ListView 上。SimpleAdapter 的构造函数需要传入以下参数: - Context:上下文对象。 - data:数据源。 - resource:列表项的布局文件。 - from:数据源中 Map 的键名数组,表示要绑定到哪些视图上。 - to:列表项布局文件中视图的 ID 数组,表示要绑定到哪些视图上。 例如: ``` SimpleAdapter adapter = new SimpleAdapter( this, // 上下文对象 data, // 数据源 R.layout.list_item, // 列表项布局文件 new String[] { "title", "image" }, // 数据源中 Map 的键名数组 new int[] { R.id.title, R.id.image } // 列表项布局文件中视图的 ID 数组 ); ``` 3. 设置 Adapter 最后需要将 Adapter 设置到 ListView 上。例如: ``` ListView listView = findViewById(R.id.list_view); listView.setAdapter(adapter); ``` 这样就完成了列表项的实现。当然,还可以对列表项进行一些定制化,比如添加点击事件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值