ListActivity
2016-02-21 23:00
246 查看
1.ListActivity:
2.ListActivity的使用:
Demo:
3.上下文对象可以用Content
获得系统服务:context.getSystemServeice();
封装了一个ListView和一个TextView(没有数据时提示) 注意:他们的id必须设置为 @android:id/id名 系统的id ListView对应的id名为list TextView对应的暂无数据名为empty 不用写ListView的布局文件
2.ListActivity的使用:
(1)如果用自己的setContentView()在XML中声明ListView(注意id) <!-- @android:id/empty系统的id --> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" ></ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="暂无数据" /> (2)写一个类继承ListActivity (3)给ListView设置适配器,直接调用setListAdapter(不用setContentView) setListAdapter(adapter); (4)设置ListView的item的点击事件: 方式一:获得当前的ListView ---> getListView() getListView().setOnItemClickListener(new OnItemClickListener() { @Override /** * 第一个参数:item的父控件(也就是ListView) * 第二个参数:点中的item的布局 * 第三个参数:点中的item的位置(下标从0开始) * 第四个参数:点中item的id * */ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub } }); 方式二:直接重写onListItemClick()方法; @Override protected void onListItemClick(ListView l, View v, int position, long id) { //必须写的 super.onListItemClick(l, v, position, id); //获得的两种方式 Map map = (Map) adapter.getItem(position); Map mapInList = (Map) l.getItemAtPosition(position); String str = (String)map.get("textView1")+" "+(String)map.get("textView2"); Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); }
Demo:
private void initView() { adapter = new MyAdapter(this, list); // 直接调用setListAdapter setListAdapter(adapter); } /** * getListView---》获得当前的ListView * item的点击事件 */ @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); //获得 Map map = (Map) adapter.getItem(position); Map mapInList = (Map) l.getItemAtPosition(position); String str = (String)map.get("textView1")+" "+(String)map.get("textView2"); Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); }
3.上下文对象可以用Content
获得系统服务:context.getSystemServeice();
在BaseAdapter中: private Content content; private LayoutInflater inflater; // getSystemService获得系统的服务(获得的服务,可以是蓝牙,wifi) inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
相关文章推荐
- 架构二
- 用户方式登陆MongoDB
- 理解并发的第一步就是下面这段代码
- 数位dp整理
- 偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder
- iOS UITableView点击按钮滚到顶部
- hdu 5442 后缀数组(没AC)
- YII config main.php
- OS X使用fswatch+rsync自动检测文件夹改动并同步
- XAMPP无法启动apache与mysql服务解决办法
- 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
- 回声消除概述
- Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
- Handler
- 数据结构之消息队列
- 观察者模式
- Java对象序列化追加的问题,以及Java的读取多个对象的问题解决方法。
- 集训队专题(6)1004 Card Game Cheater
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- [android]常见的adb指令