展会信息港展会大全

[android]5.listview组件的使用(重要!)
来源:互联网   发布日期:2015-11-26 13:16:05   浏览:901次  

导读:一、Listview的使用:1、Listview是可以存放其他组件的容器。①Listview想要显示条目要调用listview.setAdapter方法设置一个适配器。②、listvie...

一、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(AdapterViewparent, 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>();

for(Person p : persons){

Map map = newHashMap();,>,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>

参数3:条目显示的布局,布局对应的资源文件。

参数4:对象的属性,map中作为key的值。

参数5:组件的id的int数组。

2、ArrayAdapter类:

lv.setAdapter(new ArrayAdapter(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文件内容为:

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:orientation="vertical" >

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="姓名"

android:textAppearance="?android:attr/textAppearanceLarge"/>

android:id="@+id/tv_phone"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="电话号码"

android:textSize="18sp"

/>

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港