这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android中BaseAdapter用法,分析了BaseAdapter的功能、使用方法与相关注意事项,需要的朋友可以参考下
本文实例讲述了Android中BaseAdapter用法。分享给大家供大家参考,具体如下:
概述:
BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter
BaseAdapter
Java代码:
- public class RecentAdapter extends BaseAdapter {
- private class RecentViewHolder {
- TextView appName;
- ImageView appIcon;
- TextView appSize;
- }
- private List<ResolveInfo> mAppList;
- private LayoutInflater mInflater;
- private PackageManager pm;
- public RecentAdapter(Context c, List<ResolveInfo> appList,
- PackageManager pm) {
- mAppList = appList;
- this.pm = pm;
- mInflater = (LayoutInflater) c
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- }
- public void clear(){
- if(mAppList!=null){
- mAppList.clear();
- }
- }
- public int getCount() {
- return mAppList.size();
- }
- @Override
- public Object getItem(int position) {
- return mAppList.get(position);
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- RecentViewHolder holder;
- if (convertView == null) {
- convertView = mInflater.inflate(R.layout.app_info_item, null);
- holder = new RecentViewHolder();
- holder.appName = (TextView) convertView.findViewById(R.id.app_name);
- holder.appIcon = (ImageView) convertView
- .findViewById(R.id.app_icon);
- holder.appSize = (TextView) convertView.findViewById(R.id.app_size);
- convertView.setTag(holder);
- } else {
- holder = (RecentViewHolder) convertView.getTag();
- }
- ResolveInfo appInfo = mAppList.get(position);
- if (appInfo != null) {
- String labelName = appInfo.loadLabel(pm).toString();
- if (labelName != null) {
- holder.appName.setText(labelName);
- }
- Drawable icon = appInfo.loadIcon(pm);
- if (icon != null) {
- holder.appIcon.setImageDrawable(icon);
- }
- }
- return convertView;
- }
- public void remove(int position){
- mAppList.remove(position);
- this.notifyDataSetChanged();
- }
- }
其中两个注意点为:
setTag 用View设置存储数据
notifyDataSetChanged() 告诉View数据更改并刷新
View convertView = mInflater.inflate(R.layout.app_info_item, null) 加载XML Item 视图
app_info_item.xml文件示例:
xml代码:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent" android:layout_height="wrap_content"
- android:layout_gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeight">
- <ImageView android:id="@+id/app_icon" android:layout_width="@android:dimen/app_icon_size"
- android:layout_height="@android:dimen/app_icon_size"
- android:layout_alignParentLeft="true" android:paddingLeft="6dip"
- android:paddingTop="6dip" android:paddingBottom="6dip"
- android:scaleType="fitCenter" />
- <TextView android:id="@+id/app_name" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"
- android:textColor="?android:attr/textColorPrimary"
- android:layout_toRightOf="@id/app_icon" android:paddingLeft="6dip"
- android:paddingTop="6dip" />
- <TextView android:id="@+id/app_description"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:layout_below="@+id/app_name" android:layout_toRightOf="@id/app_icon"
- android:paddingLeft="6dip" android:paddingBottom="6dip" />
- <TextView android:id="@+id/app_size" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall"
- android:layout_alignParentRight="true" android:layout_below="@+id/app_name"
- android:paddingRight="6dip" android:maxLines="1" />
- </RelativeLayout>
希望本文所述对大家Android程序设计有所帮助。
来源: http://www.phperz.com/article/17/0918/348281.html