本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android视图View技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》及《Android资源操作技巧汇总》
希望本文所述对大家Android程序设计有所帮助。
本文地址:https://www.stayed.cn/item/14266
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我