ListActivity ListView 使用 介绍 用法
- 1、一般情况,ListActivity可以不用setContentView(R.layout.main),它默认是LIstView占满屏。
- 2、如果想在屏幕中显示其他控件,如文本框和按钮之类,可以采用如下方法:
2.1、在代码中添加:setContentView(R.layout.main)
2.2、在 main.xml 文件中,添加一个LIstView控件,和一个 TextView 控件,注意它们 id 必须为"@id/android:list"、"@id/android:empty";前一个表示匹配的ListView,后一个表示若LIstView没有内容则显示的提示。
ListActivity最经典的应用场景
public class MainActivity extends ListActivity {private int resource;//布局private List<String> mData;//数据private ListAdapter mAdapter;//适配器@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);resource = android.R.layout.simple_list_item_1;//最简单的当然是用系统带的布局了mData = new ArrayList<String>(Arrays.asList("第一个条目", "第二个条目", "第三个条目", "第四个条目", "第五个条目"));mAdapter = new ArrayAdapter<String>(this, resource, mData);setListAdapter(mAdapter);}@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {switch (position) {}}
}
ListActivity使用代码设置布局
public class MainActivity extends ListActivity {private ArrayList<HashMap<String, Object>> mArrayList; //存放文字、图片信息private SimpleAdapter mSimpleAdapter; //简单适配器@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);initDatas();setListAdapter(mSimpleAdapter);}private void initDatas() {mArrayList = new ArrayList<HashMap<String, Object>>();for (int i = 0; i < 5; i++) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("tv_title", "条目 " + i); //文字map.put("iv_icon", R.drawable.ic_launcher); //图片mArrayList.add(map);}//生成适配器的Item和动态数组对应的元素mSimpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item, //Item的布局new String[] { "tv_title", "iv_icon" }, new int[] { R.id.tv_title, R.id.iv_icon });}@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {setTitle("你点击第" + position + "行");}}
list_item.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/LinearLayout01"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:orientation="horizontal" ><ImageViewandroid:id="@+id/iv_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/ic_launcher" /><TextViewandroid:id="@+id/tv_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="15sp" /></LinearLayout>
ListActivity使用XML设置布局
public class MainActivity extends ListActivity implements OnClickListener {
private Button bt_add;private EditText et_item;private ArrayList<HashMap<String, Object>> mArrayList; //存放文字、图片信息private SimpleAdapter mSimpleAdapter; //简单适配器@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.activity_main);bt_add = (Button) findViewById(R.id.bt_add);et_item = (EditText) findViewById(R.id.et_item);bt_add.setOnClickListener(this);initDatas();}private void initDatas() {mArrayList = new ArrayList<HashMap<String, Object>>();for (int i = 0; i < 5; i++) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("tv_title", "条目 " + i); //文字map.put("iv_icon", R.drawable.ic_launcher); //图片mArrayList.add(map);}//生成适配器的Item和动态数组对应的元素mSimpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item,new String[] { "tv_title", "iv_icon" }, new int[] { R.id.tv_title, R.id.iv_icon });}@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {setTitle("你点击第" + position + "行");}@Overridepublic void onClick(View v) {// 向ListView里添加数据HashMap<String, Object> map = new HashMap<String, Object>();String edit_input;if (TextUtils.isEmpty(et_item.getText().toString().trim())) edit_input = "你没输入任何内容";else edit_input = et_item.getText().toString().trim();map.put("tv_title", edit_input);map.put("iv_icon", R.drawable.ic_launcher);mArrayList.add(map);//点击后才(重新)设置适配器this.setListAdapter(mSimpleAdapter);}}
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/et_item"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:hint="请输入新增条目的标题"android:textSize="15sp" ></EditText><Buttonandroid:id="@+id/bt_add"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击添加新条目"android:textSize="15sp" ></Button><ListViewandroid:id="@id/android:list"android:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1"android:drawSelectorOnTop="false" /><TextViewandroid:id="@id/android:empty"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="这是一个固定id的TextView,当LIstView没有内容时才会显示" /></LinearLayout>
ListActivity ListView 使用 介绍 用法的更多相关文章
- Android listview与adapter用法
listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
- listview与adapter用法
Android listview与adapter用法 listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用 ...
- Android listview与adapter用法(BaseAdapter + getView)
Android listview与adapter用法http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html package ...
- Android—— ListView 的简单用法及定制ListView界面
一.ListView的简单用法 2. 训练目标 1) 掌握 ListView 控件的使用 2) 掌握 Adapter 桥梁的作用 实现步骤: 1)首先新建一个项目, 并让ADT 自动帮我们创建好活动. ...
- Android之ListView——ArrayAdapter的用法学习
当我们使用ListView时,必不可少的便会使用到adapter,adapter的用处就像是一个水管接口,把你想展现的数据与你希望展现的布局样式通过某种协定结合起来. ArrayAdapter针对每个 ...
- android的listview的详细用法
listview是android开发中的一个极其重要的控件.所以,要学会android,如果这个不会,基本是不会android的. 这里按照几个步骤介绍这个控件的使用. 1. 使用API中ArrayA ...
- ListView 和 Adapter用法
一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...
- 对于ListView的一些用法(一)
ScrollView:只能用于控件比较少的界面,如果数据有上千上万条,那么使用ScrollView就不好了,因为ScrollView就把所有的控件进行初始化,这是非常消耗性能的操作,所以android ...
- 【转】Android listview与adapter用法
一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...
随机推荐
- 【COGS1049】天空中的繁星
[题目背景] 第二届『Citric』杯NOIP提高组模拟赛 第二题 [题目描述] Lemon最近买了一台数码相机.某天Lemon很无聊,于是对着夜空拍了一张照片,然后把照片导入了电脑.Lemon想依靠 ...
- oracle行转列和列转行
目录[-] 一.行转列 1.1.初始测试数据 1.2. 如果需要实现如下的查询效果图: 1.3.延伸 二.列转行 1.1.初始测试数据 1.2. 如果需要实现如下的查询效果图: 一.行转列 1.1.初 ...
- Oauth支持的5类 grant_type 及说明
authorization_code 授权码模式(即先登录获取code,再获取token) password 密码模式(将用户名,密码传过去,直接获取token) client_credentials ...
- 说一说&&符
今天添加检测代码,还得添加好几套,好蛋疼. 为了省点事,全写在HTML的行间onclick里,为此专门琢磨了一下&&的用法. 一般用&&(除了逻辑判断里),是为了简写i ...
- frame与iframe的区别?
1.frame不能脱离frameSet单独使用,iframe可以 2.frame不能放在body中,否则不能正常显示 3.嵌套在frameSet中的iframe必需放在body中,不嵌套在frameS ...
- 关于$_SERVER 常量 HTTP_X_FORWARDED_HOST与 HTTP_HOST的问题
今天在看ecshop的源码,发现了用$_SERVER['HTTP_X_FORWARDED_HOST']来判断主机的地址,就目前来说很多人都是直接通过$_SERVER['HTTP_HOST']来判断的, ...
- PHP程序异常处理实现方法
一个异常(Exception)则是在一个程序执行过程中出现一个例外或是一个事件,它中断了指令的运行,跳转到其他程序模块继续执行.所以异常处理经常被当作程序的控制流程使用.无论是错误还是异常,应用程序都 ...
- 转发:[Python]内存管理
本文为转发,原地址为:http://chenrudan.github.io/blog/2016/04/23/pythonmemorycontrol.html 本文主要为了解释清楚python的内存管理 ...
- 前端面试题第一波,要offer的看过来~
一.HTML常见题目 01.Doctype作用?严格模式与混杂模式如何区分?它们有何意义? 02.HTML5为什么只需要写<!DOCTYPE HTML>? 03.行内元素有哪些?块级元素有 ...
- Java中抽象类和接口的用法和区别
一.抽象类 1.抽象类 包含一个抽象方法的类就是抽象类 2.抽象方法 声明而未被实现的方法,抽象方法必须使用abstract关键词字声明 public abstract class People { ...