Android Adapter的应用

[size=medium][b]AdapterView[/b][/size]
Android中AdapterView用于显示数据.简单来说就是作为容器载入Adapter
AdapterView继承自ViewGroup,也属于容器类,代表的子类有ListView,GridView,Spinner,Gallery.


[size=medium][b]Adapter[/b][/size]
Android中Adapter用于存储数据及数据的一些信息(显示方式等),代表的子孙类有ArrayAdapter,CursorAdapter,SimpleAdapter.
1.SimpleCursorAdapter(继承自CursorAdapter)
SimpleCursorAdapter的构造函数:
SimpleCursorAdapter(Context context, int itemLayout, Cursor c, String[] from, int[] to);
SimpleCursorAdapter把Cursor中的每一行都转换到子视图中,子视图使用itemLayout表示的XML资源文件作为布局.
另外,还需要提供一个字符串数组from,用于表示Cursor中要显示的列,而整数数组to则表示哪一列对应与布局中的哪一个控件.因此,from的长度和to的长度总是相等的.
2.ArrayAdapter
ArrayAdapter是Android最简单的适配器,适用于列表控件.
ArrayAdapter的构造函数:
ArrayAdapter(Context context, int itemLayout, Object[] data);
ArrayAdapter只需要一个子视图的布局和一组数据就可以了.每个子视图只显示一项数据.
ArrayAdapter还提供了其他构造函数,方便实现更加复杂的情况.
另外,ArrayAdapter还支持动态修改适配器中的数据,提供了add(),insert(),remove(),sort()等方法,在数据发生变化之后还应该调用ArrayAdapter的notifyDataSetChanged()方法来同步ArrayAdapter和对应的AdapterView.


[b]Adapter与AdapterView的结合[/b]ListView
ListView垂直显示一组项,如果项数量超出屏幕显示区域,则可以使用滚动条.通常在ListActivity中使用ListView,ListActivity包含了一个ListView,提供了setListAdapter()方法来为ListView设置Adapter

public class AndroidAdapterActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
Cursor c ;
CursorLoader loader = new CursorLoader(this, People.CONTENT_URI, null, null, null, People.NAME);
c = loader.loadInBackground();
String[] cols = new String[]{People.NAME};
int[] view = new int[]{android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, cols, view);
setListAdapter(adapter);
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id){
//Toast.makeText(AndroidAdapterActivity.this, "hello:"+position, 1000).show();
Uri selected = ContentUris.withAppendedId(People.CONTENT_URI, id);
Intent intent = new Intent(Intent.ACTION_VIEW, selected);
startActivity(intent);
}
});
}
}


GridView
GridView的使用模式是首先在XML布局中定义GridView,然后使用ListAdapter把数据绑定到GridView中.
与ListView不同的是,GridView是二维的,扩展了,不需要在ListActivity中使用,GridView无法多选,而ListView可以设置多选或单选模式或none

Spinner
Spinner特点是它表面上看时一个TextView,点击它后才会出现下拉表,而子项布局是通过函数setDropDownViewResource(int id)来设置.Spinner提供了两种选择模式,一种是下拉,一种是弹出单选框.

Gallery
Gallery是一个水平的滚动的列表控件,焦点始终位于列表中央.Gallery通常用于显示图像资源.


[size=medium][b]自定义适配器[/b][/size]
Android提供了一个BaseAdapter抽象类,方便用户扩展开发自己的适配器,其实Android提供的其他适配器都是基于BaseAdapter的.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值