展会信息港展会大全

Android自学笔记-11-listview简单例子
来源:互联网   发布日期:2015-11-26 13:05:50   浏览:2327次  

导读:在开发的过程中,经常会用到列表,google已经为我们提供了列表的控件:listview。今天介绍的是最简单的listview。使用listview首先需要在布局文件中添加一个listvie...

在开发的过程中,经常会用到列表,google已经为我们提供了列表的控件:listview。今天介绍的是最简单的listview。

使用listview首先需要在布局文件中添加一个listview控件,类似下面这样:

然后就是在我们的Activity中获取到该listview,并将数据关联到这个listview,这里简单的介绍三种关联的方式:

1 使用自定义的Adapter

首先我们需要自己编写一个java类继承BaseAdapter,并实现里面的方法。然后我们调用listview的setAdapter方法,并创建一个我们自定义的Adapter的实例,作为参数传入。

下面是自定义的Adapter类:

private class myAdapter extends BaseAdapter{

@Override

public int getCount() {

//返回listview的item的总数

return 50;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

// 手工穿件listview的item

//@Override

//public View getView(int position, View convertView, ViewGroup parent) {

//Log.i("mxy", "位置" + position);

//TextView tv = new TextView(getApplicationContext());

//tv.setText("位置" + position);

//tv.setTextColor(Color.RED);

//return tv;

//}

//通过布局创建listview的item

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Log.i("mxy", "位置" + position);

View view = View.inflate(getApplicationContext(), R.layout.list_item, null);

TextView mTextViewPosition = (TextView) view.findViewById(R.id.tv_position);

TextView mTextViewName= (TextView) view.findViewById(R.id.tv_name);

mTextViewPosition.setText("位置" + position);

mTextViewName.setText("姓名" + position);

return view;

}

}

其中比较重要的是getView,这个方法返回的View就是我们在手机上显示的listview里面的item的View,上面的例子中写了两种创建item的方法都是可以的。

下面是listview的adapter的代码:

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

//自定义的Adapter

lv.setAdapter(new myAdapter());

2使用ArrayAdapter

代码如下:

for(int i = 0 ; i (this, R.layout.list_item, R.id.tv_position, ary));

这种方式适合比较简单的listview,每行只需要填一个数据,ArrayAdapter的参数分别是:Context、item的布局文件、需要赋值的item中控件的id、数组。对于复杂一点的我们可以使用第3种方式。

3 使用SimpleAdapter

例子代码如下:

List> data = new ArrayList>();

for(int i = 0 ; imap = new HashMap();

map.put("position", "位置" + i);

map.put("name", "姓名 " + i);

data.add(map);

}

lv.setAdapter(new SimpleAdapter(this, data, R.layout.list_item, new String[]{"position","name"}, new int[]{R.id.tv_position,R.id.tv_name}));

这里面的参数就比上面使用ArrayAdapter复杂多了,可以同时向布局文件中得多个控件赋值。

对于listview我们在使用的过程中,并不会立即创建所有的item,只有我们滑动到item在屏幕上显示的时候才会显示,这样应该会加快运行的效率吧。

例子工程下载地址:http://download.csdn.net/detail/mengxiangyue/7036433

转载请注明出处:http://blog.csdn.net/mengxiangyu

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港