现在的位置: 首页 > 综合 > 正文

Android菜鸟在成长-ListView事件处理

2017年09月19日 ⁄ 综合 ⁄ 共 3394字 ⁄ 字号 评论关闭

当用户使用ListView进行数据列表显示是,也可以进行事件处理操作。

还是先看效果图吧,有图有真相

data_list.xml

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TableRow
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >//加一个图标可以弄个组件的显示图片

        <TextView
            android:id="@+id/_id"
            android:gravity="center_vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12px" />
           <TextView
            android:id="@+id/name"
            android:gravity="center_vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12px" />
    </TableRow>

</TableLayout>

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/info"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="shuaishuai" />

    <ListView
        android:id="@+id/datalist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

package com.example.listview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MainActivity extends Activity {

//	private int[] pic=new int[]{R.drawable.xianjian01,R.drawable.xianjian02,R.drawable.xianjian04,R.drawable.xianjian05};//显示图片
	private String data[][]=new String [][]{{"01","北京"},{"02","tianjing"},{"03","shanghai"}};//定义显示的数据
	private List<Map<String,String>> list=new ArrayList<Map<String,String>>();//保存所有的list数据
	private ListView datalist;//定义ListView组件
	private SimpleAdapter simpleAdapter=null;//适配器
	private TextView info;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);//将组件添加到屏幕中
		this.datalist=(ListView)super.findViewById(R.id.datalist);//取得ListView组件
		this.info=(TextView)super.findViewById(R.id.info);
		for(int x=0;x<this.data.length;x++){//循环设置数据
			Map<String,String>map=new HashMap<String,String>();//定义Map集合
		//	map.put("pic", String.valueOf(this.pic[x]));//设置pic显示数据
			map.put("_id", data[x][0]);//设置title显示数据
			map.put("name", data[x][1]);//设置type显示数据
			this.list.add(map);//增加数据
		}
		this.simpleAdapter=new SimpleAdapter(this,//实列化SimpleAdapter
				this.list,//要包装的数据集合
				R.layout.data_list,//要使用的显示模版
				new String[]{"_id","name"},//定义显示的key
				new int[]{R.id._id,R.id.name});//与模版的组件匹配
		this.datalist.setAdapter(this.simpleAdapter);//设置显示数据
		this.datalist.setOnItemClickListener(new OnItemClickListenerImpl());
	}

	private class OnItemClickListenerImpl implements OnItemClickListener{

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,
				long id) {
			// TODO 自动生成的方法存根
			Map<String,String>map=(Map<String,String>)MainActivity.this.simpleAdapter.getItem(position);//取得列表项
			String _id=map.get("_id");//取得key为_id的内容
			String name=map.get("name");//取得key为name的内容
			MainActivity.this.info.setText("选中的数据Id是:"+_id+",名称是:"+name);//设置文字提示信息
			
		}
		
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

抱歉!评论已关闭.