android学习:在ListView显示对象信息、侦听列表事件

一、添加一个带有ListView控件的LayOut,在Activity_main中直接添加就可以

    <ListView
        android:id="@+id/listview_mian"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>


二、在MainActivity中声明和通过ID获取刚才添加的ListView

ListView lv = null;
lv = (ListView)findViewById(R.id.listview_mian);

三、建一个数据类ListCellData,用来存要在ListView中展示的数据

public class ListCellData {

	private String name,sex;
	private int age;
	public ListCellData(String name,String sex,int age) {
		// TODO Auto-generated constructor stub
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	public String getName() {
		return name;
	}

	public String getSex() {
		return sex;
	}

	public int getAge() {
		return age;
	}
	
}



四、向ListView中添加内容需要用到Adapter,这里用ArrayAdapter,<>中写列表中数据的格式,其他见代码,其中android.R.layout.simple_simple_list_item_1是列表的一个默认配置,如果要自定义列表的话,把他改成自己添加的有textview的xml即可。

ArrayAdapter<ListCellData> studentsAdapter;
studentsAdapter = new ArrayAdapter<ListCellData>(this, android.R.layout.simple_list_item_1);
五、用ListView的setAdapter()方法将ListView与刚才初始化的Adapter进行绑定

lv.setAdapter(studentsAdapter);
用Adapter的add()方法,向ListView中添加数据,在里面直接添加ListCellData对象的话显示的是对象的toString方法,没有重写的话显示的是存储地址?,反正需要在ListCellData中重写toString()方法,才能显示自己想要展示的数据

        studentsAdapter.add(new ListCellData("小明", "男", 22));
        studentsAdapter.add(new ListCellData("安哥拉", "女", 12));
在类中重写toString():

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return getName()+"/"+getSex()+"/"+getAge();
	}

完成上面的操作后就可以在ListView中展示类ListCellData中的对象信息的,下面介绍如何绑定点击列表项的事件:


一、MainActivity调用OnItemClickListener接口,重写其中的onItemClick()方法,这里面的四个参数只用到了Int类型的position,用Adapter的getItem()方法根据position返回列表项中ListCellData类型的数据,之后使用了Toast插件,用Toast的makeText()方法显示了刚才返回的ListCellData对象的详细信息:

public class MainActivity extends Activity implements OnItemClickListene
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
    	// TODO Auto-generated method stub 目前只用到了position
    	ListCellData data = studentsAdapter.getItem(position);
    	Toast.makeText(this, String.format("姓名:%s,性别:%s,年龄:%d。", data.getName(),data.getSex(),data.getAge()), Toast.LENGTH_SHORT).show();
    }
二、最后在onCreate()方法中用lv的setItemClickListener()方法绑定事件触发器

lv.setOnItemClickListener(this);

PS:继承ListActivity后要使用setItemClickListener()方法要使用先getListView()获取列表:

		getListView().setOnItemClickListener(this);












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值