首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android BaseAdapter 例证

2012-08-31 
Android BaseAdapter 例子BaseAdapter ?public class RecentAdapter extends BaseAdapter {private class

Android BaseAdapter 例子

BaseAdapter

?

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();}@Overridepublic Object getItem(int position) {return mAppList.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 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 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>

?

?

2 楼 zylucky 2010-07-15   感谢.....上面打错字了。。呵呵 3 楼 fonter 2010-07-15   zylucky 写道感谢.....上面打错字了。。呵呵
哈哈,不客气!

热点排行