- 浏览: 514892 次
- 性别:
- 来自: 惠州
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
自定义BaseAdapter Android ListView GrideView spinner 等 每行包含图片,TextView,checkbox的显示
- 博客分类:
- android
/**
* MyAdapter
* TODO
* @knownBugs
*/
public class MyAdapter extends BaseAdapter {
/** the context*/
private Context mContext;
/** the list of the ShopInfoSerialzable*/
private List<ShopInfoSerialzable> mShopData;
/** layoutInflater*/
private LayoutInflater layoutInflater;
/**
* ViewHolder
* TODO
* @knownBugs
*/
class ViewHolder {//这个类变量对应显示的一行的所有组件
/** the picture of the goods*/
ImageView shopIcon;
/** the name of the goods*/
TextView shopName;
/** the checkBox*/
CheckBox checkBox;
}
//构造函数
public MyAdapter(Context aContext,
List<ShopInfoSerialzable> aShopData) {
this.mContext = aContext;
this.mShopData = aShopData;
layoutInflater =
(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return mShopData.size();
}
@Override
public Object getItem(int aPosition) {
return mShopData.get(aPosition);
}
@Override
public long getItemId(int aPosition) {
return aPosition;
}
//主要需要重写的方法,得到用来显示的每一行组件
@Override
public View getView(final int aPosition,
View aConvertView, ViewGroup aParent) {
ViewHolder holder = null;
if (aConvertView == null) {
aConvertView =
layoutInflater.inflate(R.layout.shopping_list_row, null);
holder = new ViewHolder();
holder.shopIcon =
(ImageView) aConvertView.findViewById(R.id.shoppingIcon);
aConvertView.setTag(holder);//这里就设定了图片,可以从一个集合中动态取,可以接下来改变它们的值
holder.shopName =
(TextView) aConvertView.findViewById(R.id.shoppingName);
holder.checkBox =
(CheckBox) aConvertView.findViewById(R.id.checkBox);
} else {
holder = (ViewHolder) aConvertView.getTag();
}
ShopInfoSerialzable shopInfoSerialzable = mShopInfos.get(aPosition);
if (shopInfoSerialzable != null) {
holder.shopName.setText(shopInfoSerialzable.getmShopName()
+ "(" + shopInfoSerialzable.getmShopNumber() + ")");
int finishId = shopInfoSerialzable.getmFinishId();
String comleteStr = (finishId == 1)
? mContext.getResources().getString(R.string.complete)
: mContext.getResources().getString(R.string.uncomplete);
boolean checked = (finishId == 1) ? true : false;
holder.complete.setText(comleteStr);
holder.checkBox.setChecked(checked);
if (checked) {
aConvertView
.setBackgroundColor(Color.parseColor("#99CC66"));
holder.checkBox.setVisibility(CheckBox.INVISIBLE);
} else {
aConvertView.setBackgroundColor(Color.WHITE);
holder.checkBox.setVisibility(CheckBox.VISIBLE);
holder.complete.setTextColor(Color.parseColor("#cc0000"));
}
}
holder.checkBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View av) {
ShopInfoSerialzable shopInfoSerialzable =
mShopInfos.get(aPosition);
int finishId = shopInfoSerialzable.getmFinishId();
if (finishId == 0) { //unCheck to check
String shopName = shopInfoSerialzable.getmShopName();
mDb.updateDataStatus(DataModel.TABLE_SHOPPING,
DataModel.FINISHID, 1,
DataModel.SHOPNAME, shopName);
reGroupStatus(1, shopName);
MyAdapter.this.notifyDataSetChanged();
} else if (finishId == 1) { //check to unCheck
mShoppingName = shopInfoSerialzable.getmShopName();
mDb.updateDataStatus(DataModel.TABLE_SHOPPING,
DataModel.FINISHID, 0, DataModel.SHOPNAME,
mShoppingName);
reGroupStatus(0, mShoppingName);
MyAdapter.this.notifyDataSetChanged();
}
}
});
return aConvertView;
}
显示图片的方式也可以
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ImageView i;
- if(null==convertView){
- i=new ImageView(PeopleScreen.this);
- i.setScaleType(ScaleType.FIT_CENTER);
- i.setLayoutParams(new GridView.LayoutParams(50, 50));
- }else{
- i=(ImageView)convertView;
- }
- ResolveInfo info=mApps.get(position);
- i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
- return i;
- }
}
发表评论
-
onInterceptTouchEvent和onTouchEvent调用时序
2012-02-08 08:44 1054onInterceptTouchEvent和onTouchEv ... -
Android2.2.1广播大全
2012-01-11 17:29 920Android2.2.1广播大全 博 ... -
Android Gesture Detector
2012-01-06 16:09 1219Android Gesture Detector * ... -
在程序中设置android:gravity 和 android:layout_Gravity属性
2012-01-06 10:04 1574【Android布局】在程序中 ... -
Android应用程序基础 >> 任务栈和亲属关系(Activities and Tasks)
2012-01-05 10:26 1153Android应用程序基础 >& ... -
android 中使用socket使native和framework通信
2011-09-01 10:14 1207android 中使用socket使native和frame ... -
android aidl iBinder理解
2011-06-01 11:51 2067在android中有一个程序员大量使用的操作,就是bindse ... -
Android开发者指南(6) —— AIDL
2011-05-31 10:59 1299Android开发者指南(6) —— AIDL ... -
android 线程间的通信
2011-05-20 13:22 904近来找了一些关 ... -
Android Service学习之AIDL, Parcelable和远程服务
2011-05-20 11:51 1078AIDL的作用 由于每个应用程序都 ... -
有关Android线程的学习
2011-05-20 11:20 10421. Android进程 在了解Android ... -
(转载)Android下Affinities和Task
2011-05-19 16:30 860(转载)Android下Affinities和Tas ... -
Android的Launcher成为系统中第一个启动的,也是唯一的
2011-05-12 19:38 2174Android的Launcher成为系统 ... -
Launcher的启动过程
2011-05-12 19:36 22461. Launcher的启动过程 从网络上 ... -
android中使用jni,ndk的C语言回调方法
2011-05-12 19:19 6564android中使用jni,ndk的C ... -
典型应用之——将库打进apk
2011-05-12 19:19 2892典型应用之——将库打进apk (2010-12-17 1 ... -
一个打通jni,java framework,application三层的练习
2011-05-10 10:58 1172转自:http://blogold.chinaunix ... -
android eclipse 和 源码 情况下 引用第三方jar
2011-05-10 10:55 2485android eclipse 和 源码 情况 ... -
1.系统属性获取及设置中的设置值
2011-04-21 15:04 35241.系统属性获取及设置 android.os.SystemP ... -
给应用签名 uid.system platform 权限
2011-04-21 14:58 1487在生成的apk目录下放 signapk.jar platfo ...
相关推荐
本篇主要讲解如何在Android Studio中使用ListView,并结合自定义的BaseAdapter来实现数据的绑定和显示。 首先,我们需要在布局文件中添加ListView组件。在res/layout目录下的xml布局文件中,可以这样定义一个...
- 数据绑定:使用findViewById()获取View,然后根据数据项设置View的内容,如TextView的文字、ImageView的图片等。 - 视图状态管理:对于有选择状态的ListView,需要维护选中状态,比如使用CheckBox,可以通过 ...
`BaseAdapter`是Android SDK提供的一种适配器,它是所有自定义ListView适配器的基础类,用于将数据绑定到ListView上。本示例"BaseAdapter_listview"正是通过自定义BaseAdapter来实现ListView的展示。 首先,我们要...
在ListView中,BaseAdapter是一个抽象类,你需要继承它并实现其中的方法,如`getView()`,来定制每个列表项的显示。`getView()`方法会在ListView滚动时被频繁调用,用于创建或复用ListView的子视图(ViewHolder)。 ...
1. BaseAdapter是Android中的适配器基类,它实现了ListView、GridView等控件的数据源接口,负责将数据绑定到列表项上。 2. 自定义Adapter:通常需要继承BaseAdapter并重写其中的几个关键方法,如getCount()、getItem...
综上所述,通过自定义适配器,我们可以灵活地使用TextView和ListView来创建具有各种样式的Spinner。这不仅提高了用户体验,也使我们的应用程序更加个性化和专业。记得在实际开发中根据具体需求进行调整,以达到最佳...
在Android开发中,ListView和Spinner是两种非常常用的UI组件,它们在构建用户界面时起着至关重要的作用。ListView主要用于展示大量的列表数据,而Spinner则提供了一个下拉选择菜单,用于在一组预定义的选项中进行...
通过自定义BaseAdapter,我们可以控制ListView中的每一项如何显示,包括添加图片。 1. **创建布局文件**: 首先,我们需要为ListView的每个Item创建一个布局文件。这个布局通常会包含一个ImageView和一个TextView,...
BaseAdapter是所有自定义适配器的基类,包括ArrayAdapter、SimpleAdapter等。它的主要职责是将数据模型转换为ListView可以显示的View。通过重写BaseAdapter中的几个关键方法,我们可以定制化数据的显示方式: 1. `...
首先,`ListView`是一个可滚动的视图,它能够显示一行行的数据。它通过Adapter来获取数据并将其渲染为可视化的列表项。对于复杂的数据结构,我们需要创建自定义适配器以满足需求。 **1. 自定义适配器** 自定义...
当需要在ListView的每一项中加入复选框(Checkbox)时,这通常涉及到自定义Adapter和处理复选状态的逻辑。以下是对这个主题的详细阐述: 1. **自定义Adapter**: - Android的ListView默认不支持在每一项中直接添加...
然后,为ListView设置Adapter,这个Adapter需要继承自BaseAdapter,以便处理每个列表项中的Spinner。这里需要特别注意,因为每次点击ListView时,系统可能会重新创建视图,所以要确保Spinner的状态在滚动过程中得到...
在提供的"ListViewTeacheing"文件中,可能包含了一个示例项目的源代码,包括一个自定义的BaseAdapter实现以及如何在Activity中使用这个Adapter与ListView进行交互。通过学习这个例子,你可以更好地理解上述步骤,并...
然而,当ListView中的每一项都需要显示网络图片时,如果不进行优化,可能会导致性能问题,如界面卡顿、滚动不流畅等。这个问题的解决方法是高效地加载网络图片并自定义ListView的布局。 首先,我们需要了解异步加载...
要改变ListView选中行的字体颜色和图片,我们需要理解ListView的工作原理,以及如何自定义其Adapter和视图。以下是一些关键知识点的详细介绍: 1. **ListView的基本使用**: - ListView是一个视图容器,它能加载...
首先,我们需要创建一个自定义的ListView项布局,包含一个TextView用于显示数据,以及一个CheckBox用于选择。在布局文件中,CheckBox通常设置为默认不可见,只有在用户长按列表项时才会显示。以下是一个简单的布局...
2. **自定义ListView Item布局**:在XML中设计一个ListView的Item布局,包含一个Button。例如,创建一个名为`list_item.xml`的布局文件: ```xml <LinearLayout xmlns:android=...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。当需要在列表项中添加选择功能时,我们通常会结合使用ListView与CheckBox。本篇将详细讲解如何利用这两种组件实现ListView中的单选功能。 ...
对于android项目开发来说,常常会用到Spinner实现下拉框的效果。而对于Spinner加载适配器的方法有多种: 1.直接加载android自带的ArrayAdapter,SimpleAdapter; 2.自定义继承BaseAdapter的适配器。 对于适配器加载...