`
fonter
  • 浏览: 868250 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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();
	}

	@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 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>

 

 

分享到:
评论
3 楼 fonter 2010-07-15  
zylucky 写道
感谢.....上面打错字了。。呵呵

哈哈,不客气!
2 楼 zylucky 2010-07-15  
感谢.....上面打错字了。。呵呵
1 楼 zylucky 2010-07-15  
解决了我一个问题,感稿

相关推荐

    android demo,BaseAdapter传递context的应用

    在这个例子中,首先创建一个自定义的`BaseAdapter`子类,然后在构造函数中接收`Context`参数。这个`Context`可以是Activity或Fragment的`getApplicationContext()`,但推荐使用前者,因为Activity的`Context`更稳定...

    Android中BaseAdapter用法示例

    在Android开发中,BaseAdapter是一个非常重要的组件,它是数据和UI组件之间的一个桥梁,用于将数据绑定到诸如ListView、Spinner、Gallery以及GridView等视图控件上进行展示。BaseAdapter是一个抽象类,它实现了...

    Android BaseAdapter应用实例

    BaseAdapter是Android开发中用于将数据绑定到列表视图(ListView)或其他适配器视图(如GridView)的一种核心组件。在这个实例中,我们将深入理解BaseAdapter的使用,并通过生成联系人Items的例子来阐述其工作原理和...

    Android中BaseAdapter的用法分析与理解

    在Android开发中,BaseAdapter是一个关键组件,用于将数据集与可滚动视图(如ListView、GridView等)进行绑定,使得视图能够展示数据。本篇文章将深入探讨BaseAdapter的用法、功能以及如何在实际项目中应用。 首先...

    android开发之BaseAdapter

    在Android开发中,`BaseAdapter`是一个非常关键的组件,它是连接数据源和视图(如ListView、GridView等)的桥梁。本篇文章将详细介绍`BaseAdapter`的使用方法,并通过具体的代码示例来帮助理解其工作原理。 首先,`...

    Android_BaseAdapter_ListView

    首先,`BaseAdapter`是Android SDK提供的一种适配器,它是一个抽象类,为各种视图(如ListView)提供了数据绑定的功能。开发者需要继承BaseAdapter,并实现其四个主要方法:`getCount()`、`getItem(int position)`、...

    Android Gallery小例子

    这个小例子展示了如何在Android应用中集成和使用`Gallery`控件,以实现一个可滚动的图片画廊功能。下面我们将深入探讨`Gallery`的相关知识点。 1. **Gallery控件介绍** `Gallery`是Android SDK中的一个...

    SQLite 和 listview baseAdapter结合的例子

    在这个例子中,我们关注的是如何将SQLite数据库的数据通过BaseAdapter展现到ListView上。 首先,我们需要创建一个SQLite数据库。这通常涉及到以下步骤: 1. 创建一个SQLiteOpenHelper子类,重写`onCreate()`和`...

    android 一些listview例子

    在"android 一些listview例子"这个主题中,我们将会深入探讨ListView的各种使用方法和优化策略。 首先,ListView的基本使用涉及到创建适配器(Adapter)。适配器是连接数据源与ListView的关键,常见的有BaseAdapter...

    android ListActivity 和 BaseAdapter 实例

    在Android开发中,`ListActivity`和`BaseAdapter`是两个关键组件,它们共同用于创建显示数据列表的应用界面...通过分析和学习这个例子,开发者可以更深入地理解这两种组件的协同工作方式,进一步提升Android开发技能。

    Android基础类之BaseAdapter

    由于无法直接访问该链接,我们可以通过一个简化的例子来理解`BaseAdapter`的工作原理。 假设我们有一个简单的数据模型类`ImageModel`,包含图片URL和描述。我们可以创建一个名为`ImageAdapter`的类,继承`...

    android listview 例子

    这个"android listview 例子"着重展示了ListView在实际应用中的复杂使用方式,特别是如何在一个ListView中包含各种不同的控件,以实现丰富的界面效果。 ListView的工作原理基于Adapter模式,Adapter是连接数据源和...

    使用baseAdapter显示list

    在Android开发中,显示列表数据是一项常见的任务,`BaseAdapter`是Android SDK提供的一种机制,用于将数据绑定到可滚动视图,如ListView、GridView等。`BaseAdapter`充当了数据源与视图之间的桥梁,使得开发者能够...

    android List View例子代码

    本示例代码"android List View例子代码"旨在帮助开发者理解和掌握如何在Android应用中有效地使用ListView。 ListView的核心原理在于它的视图复用(View Recycling)机制,这一机制使得即使有成千上万个条目,...

    19Android-16-baseAdapter.rar

    总的来说,“19Android-16-baseAdapter.rar”这个项目可能包含了一个完整的例子,演示了如何创建一个自定义的BaseAdapter,以及如何将数据绑定到ListView或其他可滚动视图上。通过学习这个项目,开发者可以掌握...

    BaseAdapter 万能适配器

    BaseAdapter是Android开发中一种常用的适配器,它允许开发者将数据集与各种视图控件,特别是ListView、GridView等...这个例子是一个很好的学习资源,可以帮助开发者快速掌握BaseAdapter的用法,并应用于实际项目中。

    xamarin android listview简单例子

    在Xamarin中,我们通常使用BaseAdapter或已有的Adapter子类,如ArrayAdapter或CursorAdapter。在这个例子中,我们可能将使用ArrayAdapter,因为它适用于简单的数据集合,如字符串数组。 创建ListView的第一步是添加...

    BaseAdapter适配器

    接下来,我们通过一个具体的例子来深入理解如何自定义一个`BaseAdapter`。 ##### 1. 数据初始化 ```java public void initData() { List, Object&gt;&gt; data = new ArrayList, Object&gt;&gt;(); for (int i = 1; i ; i++) ...

    android适配器的例子

    总之,“android适配器的例子”是一个非常适合初学者的实践项目,通过这个例子,开发者能够掌握如何在Android应用中有效地使用适配器和ListView,为用户界面提供动态和交互式的数据展示。在实际项目中,适配器的概念...

    android入门例子

    在Android中,你可以使用BaseAdapter、SimpleAdapter或者CursorAdapter等预定义的Adapter,也可以自定义Adapter以满足特定需求。 2. **创建Adapter**:Adapter是连接数据源和ListView的关键。你需要实现Adapter的`...

Global site tag (gtag.js) - Google Analytics