在android中ListView是一个经常使用到的控件,该控件是android众多列表控件中的一种,以垂直的方式显示一组项,对于ListView的使用包含以下三部分:
1)建立一个包含ListView的布局文件和一个针对ListView中每一个项的布局文件;
2)创建一个Activity(最简单的方式是继承ListActivity);
3)创建一个ListAdapter,填充所需的数据后通过addListAdapter添加ListAdapter至该Activity;
在下面的代码中给出的只是最简单的方式用以演示最基本的使用方式:
1)建立所需的布局文件:
/res/layout/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="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
注意:
ListView的id要使用android内置的id:@android:id/list
/res/layout/listview_item.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" >
<CheckBox
android:id="@+id/checked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />
<TextView
android:id="@+id/author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#00FFFF"
android:textStyle="bold"
android:textSize="20dp" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFF00"
android:textSize="15dp" />
</LinearLayout>
注意:
对于Button,CheckBox等按钮控件如果用在ListView中需要设置android:clickable="false" android:focusable="false" android:focusableInTouchMode="false",否则的话click事件将被这些控件捕获,无法被ListView的OnListItemClick捕获;
2)创建一个继承自ListActivity的活动:
package ui.app;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListViewActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
SimpleAdapter adapter = new SimpleAdapter(this, getData(),
R.layout.listview_item, new String[] { "author", "title" },
new int[] { R.id.author, R.id.title });
setListAdapter(adapter);
}
private List<Map<String, String>> getData() {
List<Map<String, String>> data = new ArrayList<Map<String, String>>();
Map<String, String> entry = new HashMap<String, String>();
entry.put("author", "哈迪斯");
entry.put("title", "死神");
data.add(entry);
entry = new HashMap<String, String>();
entry.put("author", "宙斯");
entry.put("title", "神王.雷神");
data.add(entry);
entry = new HashMap<String, String>();
entry.put("author", "波塞冬");
entry.put("title", "海神");
data.add(entry);
return data;
}
@Override
public void onListItemClick(ListView list, View view, int position, long id) {
LinearLayout layout = (LinearLayout) list.getChildAt(position);
CheckBox cb = (CheckBox) layout.findViewById(R.id.checked);
if (cb.isChecked()) {
cb.setChecked(false);
} else {
cb.setChecked(true);
}
}
}
3)关联Adapter:
关联ListAdapter和设置onListItemClick的处理方式在上面的代码中给出;
运行结果如下:
- 大小: 21 KB
分享到:
相关推荐
演示Android的ListView控件的使用, 从简单到复杂,四个案例,总有一个是你想要的!
环境:Windows XP SP3、JDK 1.6、Android SDK...目的:熟悉ListView控件的用法--使用ListView必须让Activity继承ListActivity类,并且在main.xml布局描述文档中,ListView类的android.id必须是"@+id/android:list”值。
Android中的ListView控件学习
android ListView子控件监听
采用ListView控件加自定义适配器实现listview列表控件,代码简单,逻辑清楚,可扩展性强,并且解决了OOM,亲测绝对可以使用
ListView空间的基本用法,对于开发人员适用
Android中ListView控件实现数据的异步分批加载
android中Listview的创建和几个视觉效果的设置
android自定义ListView控件实现下拉刷新、分页加载、item点击 详情请看:http://blog.csdn.net/wild46cat/article/details/52682091
Android ListView控件显示数据库中图片
android关于listview之列表分组,像Q上一样显示列表项
android自定义ListView控件实现下拉刷新 详情请看:http://blog.csdn.net/wild46cat/article/details/52679082
Android中ListView实现子控件点击事件后ListView点击事件失效解决办法,详细说明见相关博客: 博文地址:http://blog.csdn.net/leijf1239848066/article/details/9526483
Android中ListView实现表格效果
Android ListView 控件 修改源码
Android使用ListView实现一个高性能无限层级显示的树形控件.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android系统ListView控件数据递增显示研究.pdf
高职Android课程ListView控件教学微课设计.pdf
本例通过android中接口回调,实现listview内部控件的点击事件获取与处理。具体实现原理可查看我的博客:http://blog.csdn.net/u013318697/article/details/50615129
Android支持横行滚动的ListView控件