Android中ListView控件的简单使用
16lz
2021-01-23
在android中ListView是一个经常使用到的控件,该控件是android众多列表控件中的一种,以垂直的方式显示一组项,对于ListView的使用包含以下三部分:
1)建立一个包含ListView的布局文件和一个针对ListView中每一个项的布局文件;
2)创建一个Activity(最简单的方式是继承ListActivity);
3)创建一个ListAdapter,填充所需的数据后通过addListAdapter添加ListAdapter至该Activity;
在下面的代码中给出的只是最简单的方式用以演示最基本的使用方式:
1)建立所需的布局文件:
/res/layout/listview.xml
注意: ListView的id要使用android内置的id:@android:id/list
/res/layout/listview_item.xml
注意: 对于Button,CheckBox等按钮控件如果用在ListView中需要设置android:clickable="false" android:focusable="false" android:focusableInTouchMode="false",否则的话click事件将被这些控件捕获,无法被ListView的OnListItemClick捕获;
2)创建一个继承自ListActivity的活动:
3)关联Adapter:
关联ListAdapter和设置onListItemClick的处理方式在上面的代码中给出;
运行结果如下:
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 {@Overridepublic 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;}@Overridepublic 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的处理方式在上面的代码中给出;
运行结果如下:
更多相关文章
- WebView与 JavaScript 交互方式
- Android 布局 精准定位 平衡定位 相对定位
- Android 开发使用 Gradle 配置构建库模块的工作方式
- 在android中使用Post方式提交数据
- Android 中LayoutInflater(布局加载器)之介绍篇
- android 常用控件的使用 TextView EditTextView
- Android常用布局类整理(一)
- Android 个别手机导航键覆盖布局解决办法