【android】5.listview组件的使用(重要!)
来源:互联网 发布:淘宝棒球服外套女 编辑:程序博客网 时间:2024/05/23 15:42
一、Listview的使用:
1、Listview是可以存放其他组件的容器。
①Listview想要显示条目要调用listview.setAdapter方法设置一个适配器。
②、listview需要被告诉显示多少个条目。
③、指定listview中每个条目显示什么样子。
//获取ListView空间:
ListViewlv= (ListView) this.findViewById(R.id.lv);
// 要想设置listview的显示的内容 就需要把listview的数据适配器给设置进去
lv.setAdapter(new MyAdapter());
//给listview的每一个条目注册点击事件.
//setOnItemClickListener方法参数为:ClickListener接口的子类
lv.setOnItemClickListener(newOnItemClickListener() {
//点击条目执行参数(listview对象,当前点击条目的view对象,位置,行号)
public voidonItemClick(AdapterView<?> parent, View view,
intposition, long id) {
//获取适配器中getItem()方法的返回值。
lv.getItemAtPosition(position);
//获取适配器中getItemId方法的返回值。
lv.getItemIdAtPosition(position);
}
});
2、自定义适配器类,继承BaseAdapter类。
publicclass MyAdapter extends BaseAdapter{
/**
* 告诉listview显示多个条目
*/
@Override
public int getCount() {
return5;
}
/**
* 返回每一个条目对应的对象。
*/
@Override
public Object getItem(int position) {
returnnull;
}
/**
* 返回每一个条目对应的编号,
*/
@Override
public long getItemId(int position) {
returnposition;
}
/**
* 设置listview每一个条目显示成什么样子,并返回每个组件。
* 这个方法会被调用多少次?
* 方法参数1:当前条目显示的位置,从0开始
*方法的返回值是:view对象。
*/
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
if(position==0){//第一个位置。
//创建TextView 对象。
TextViewtv = new TextView(DemoActivity.this);
tv.setText("我是第一个textview");
returntv;
}
if(position==1){
//创建图片view
ImageView iv = newImageView(DemoActivity.this);
iv.setImageResource(R.drawable.ic_launcher);
return iv;
}
TextViewtv1 = new TextView(DemoActivity.this);
tv1.setText("我是textview"+position);
returntv1;
}
}
}
二、系统提供的适配器:
1、SimpleAdapter类:
ListView lv = (ListView) this.findViewById(R.id.lv);
LayoutInflater inflater = (LayoutInflater)getSystemService(
LAYOUT_INFLATER_SERVICE);
datas =new ArrayList<Map<String,String>>();
for(Person p : persons){
Map<String,String> map = newHashMap<String, String>();
map.put("name", p.getName());
map.put("phone", p.getPhone());
datas.add(map);
}
//设置适配器
lv.setAdapter(new SimpleAdapter(this, datas,
R.layout.item,
new String[]{"name","phone"},
newint[]{R.id.tv_name,R.id.tv_phone}));
SimpleAdapter 类构造函数的参数:
参数1:上下文,
参数2:数据,list集合中是map集合。List<Map<String,String>>
参数3:条目显示的布局,布局对应的资源文件。
参数4:对象的属性,map中作为key的值。
参数5:组件的id的int数组。
2、ArrayAdapter类:
lv.setAdapter(new ArrayAdapter<String>(this,R.layout.item,
R.id.tv_name,new String[]{"张三","李四","王五"}));
三、布局填充器的使用:
1、填充器,将布局的xml中的布局转成view对象:
2、获取布局填充器对象:
LayoutInflater inflater = (LayoutInflater)getSystemService(
LAYOUT_INFLATER_SERVICE);
//将布局文件转成view对象的的方法,参数(布局的xml文件, 是否独立的参数)
//R.layout.item:对应layout目录下的item.xml文件。
View view =inflater.inflate(R.layout.item, null);
//获取view对象中的id为tv_name的组件。
TextView tv_name= (TextView) view.findViewById(R.id.tv_name);
3、layout目录下的item.xml文件内容为:
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" <!--指定空间显示位置,center_horizontal:居中显示 -->
android:orientation="vertical" >
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电话号码"
android:textSize="18sp"
/>
</LinearLayout>
- 【android】5.listview组件的使用(重要!)
- Android重要组件ListView的技术使用,研究。(持续更新...)
- Android 重要的组件
- 【Android开发】基本组件-ListView(重要)
- Android ListView 重要的属性
- android listview重要的属性
- Android -----listView的重要属性
- Android的四个重要组件
- Android重要的组件--Intent
- android的listView组件
- ListView组件的使用
- ListView组件的使用
- ListView组件的使用
- ListView组件的使用
- android的四大组件+intent重要组件
- 黑马程序员——Android之重要组件ListView
- Android系列教程之八:ListView组件的使用
- Android系列教程之八:ListView组件的使用
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
- 软件工程-软件重用
- 分支定界算法(Branch and Bound)
- C++ 重载 覆盖 隐藏
- linux exec函数家族
- 【android】5.listview组件的使用(重要!)
- Python中Socket的Close方法假关闭Socket连接的问题
- 【android,6】6.android在web下的应用-在客户端获取服务端的信息
- 【android,7】7.android在web下的应用-将客户端信息提交到服务端
- PHP里的opcode(2)
- POI 单元格格式化 - 数据格式化
- mysql数据导入导出
- Leetcode: Unique Binary Search Trees
- c语言冒泡排序