android adapter控件及高级控件

Adapter(适配器)
Adapter是界面数据绑定的一种理解。它所操纵的数据如数组,链表,数据库,集合等。
常用的适配器有ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,它们都是继承BaseAdapter。
Adapter都位于android.widget包下。
Adapter对象有两个主要责任:
用数据填充布局

处理用户的选择



使用ArrayAdapter为下拉列表加载数据,有两种方式:
使用Java代码动态地定义下拉列表的数据源。
使用xml文件预先定义数组资源描述文件。

支持泛型操作,最为简单,只能展示一行字




Spinner(下拉列表)
位于android.widget包下。
是一个一行的下拉列表框,只有当用户点击这个控件时,才会下拉出选项列表供用户选择。
在下拉列表中的选项内容,需要绑定到数据源上,绑定数据需要用到适配器(Adapter)。
实现一个Spinner需要完成以下五个步骤。
第一步,为下拉列表项定义数据源;
第二步,实例化一个适配器;
第三步,为Spinner设置下拉列表下拉时的显示样式;
第四步,将适配器添加到Spinner上;
第五步,为Spinner添加监听器,设置各种事件的响应操作。


下拉控件
数据源:
1. 数组
1)ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, citys);
2)adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);         
3)spCity.setAdapter(adapter);

2.资源文件
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.citys, android.R.layout.simple_spinner_item);
或:
 String[] citys=getResources().getStringArray(R.array.citys);
ArrayAdapter<String> adapter1=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,citys);


ListView
ListView是一种列表视图,将ListAdapter所提供的各个控件显示在一个垂直的、可滚动的列表中。
ListView常用的监听包括:
单击监听,添加单击监听使用ListView.setOnItemClickListener();
滚动监听,添加滚动监听使用ListView.setOnItemSelectedListener();
长按事件
     ListView. setOnItemLongClickListener();

实现一个ListView控件,主要分以下四步骤:
第一步,准备ListView要显示的数据,使用一维或多维动态数组保存数据;
第二步,构建适配器。由于ListView的每一个Item的组成可简单,也可能比较复杂,所以根据需要,可选择ArrayAdapter,SimpleAdapter或BaseAdapter来为ListView绑定数据;
第三步,使用setAdapter(),把适配器添加到ListView,并显示出来。
第四步,为ListView添加监听器,设置各种事件(如单击、滚动、单击长按等)的响应操作。

ArrayAdapter,单条记录无布局文件
使用一:ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.java_ref,
android.R.layout.simple_spinner_dropdown_item);
this.lv.setAdapter(adapter);

public void onItemClick(AdapterView<?> adapterView, View view, int position,long id) {
   String str=  (String)  
           adapterView.getItemAtPosition(position);
   Toast.makeText(ListviewActivity.this, str, 2000).show();


}

使用二:ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.list3_item,R.id.tv_name, lv_city);
lv.setAdapter(adapter);


R.layout.list3_item:布局文件
R.id.tv_name:TextView控件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值