关于andriod的Adapter理解,Android开发热门前沿知识

mInflater = LayoutInflater.from(context);

mResource = mDropDownResource = resource;

mObjects = objects;

mObjectsFromResources = objsFromResources;

mFieldId = textViewResourceId;

}

}

BaseAdapte


一般来讲使用BaseAdapte 都要自定义Adapate,因为该类的使用,需要实现把数据源确定,这样才能在匹配数据时,按照类的方式直接使用

事例一

2.BaseAdapter类 原型

public abstract class BaseAdapter implements ListAdapter, SpinnerAdapter

实例二(该类原型继承类)

该类没有原初始化函数 所以 一定要重载

public class MyAdapter extends BaseAdapter{

private List mList;//数据源

private LayoutInflater mInflater;//布局装载器对象

// 通过构造方法将数据源与数据适配器关联起来

// context:要使用当前的Adapter的界面对象

public MyAdapter(Context context, List list) {

mList = list;

mInflater = LayoutInflater.from(context);

}

@Override

//ListView需要显示的数据数量

public int getCount() {

return mList.size();

}

@Override

//指定的索引对应的数据项

public Object getItem(int position) {

return mList.get(position);

}

@Override

//指定的索引对应的数据项ID

public long getItemId(int position) {

return position;

}

@Override

//返回每一项的显示内容

public View getView(int position, View convertView, ViewGroup parent) {

//将布局文件转化为View对象

View view = mInflater.inflate(R.layout.item,null);

/**

  • 找到item布局文件中对应的控件

*/

TextView titleTextView = (TextView) view.findViewById(R.id.tv_title);

TextView contentTextView = (TextView) view.findViewById(R.id.tv_content);

//获取相应索引的ItemBean对象

ItemBean bean = mList.get(position);

/**

  • 设置控件的对应属性值

*/

titleTextView.setText(bean.itemTitle);

contentTextView.setText(bean.itemContent);

return view;

}

}

SimpleAdapter


事例三 SimpleAdapter原初始化类

public SimpleAdapter(Context context, List<? extends Map

@LayoutRes int resource, String[] from, @IdRes int[] to) {

mData = data;

mResource = mDropDownResource = resource;

mFrom = from;

mTo = to;

mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

实列三 利用数据库直接获取数据源,因为SimpleAdapter原型 类似与BaseAdapter)

Cursor name=dataOperation.getAll();

while(name.moveToNext()){

Map<String, Object> items = new HashMap<String, Object>();

String notename1=name.getString(0);

notetitle.add(notename1);

String notetime1=name.getString(2);

items.put(“notename1”, notename1); //放入头像, 根据下标获取数组

items.put(“notetime1”, notetime1); //放入名字, 根据下标获取数组

list_map.add(items);

}

simpleAdapter = new SimpleAdapter(

MainActivity.this,

list_map,

R.layout.listnote_item,

new String[]{“notename1”, “notetime1”},

new int[]{R.id.notename, R.id.notetime});

listView.setAdapter(simpleAdapter);

SimpleAdapter与BaseAdapte的区别


它们两都是Android里的适配器,充当数据和界面之间的桥梁,用SimpleAdapter、baseAdapter的实现效果都几乎是一样,SimpleAdapter适配器使用的数据结构是HashMap,这意味着,如果需要操作的数据对象结构过于复杂时,需要写大量的相关转化代码,程序的效率和可维护性都会变的很低,但是它完全不用考虑缓存弄到应用程序卡死的问题,而且代码会与页面代码耦合,无法切换页面,反过来baseAdapter却是需要写清除缓存代码的,而且baseadapter代码会相对来说会简洁清晰页面与代码不会耦合,所以使用baseadapter会让代码变得简捷效率更加灵活操作

#SimpleAdapter实例

写在最后

由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~

将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。

提升架构认知不是一蹴而就的,它离不开刻意学习和思考。

**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。

希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!

转发+点赞+关注,第一时间获取最新知识点

Android架构师之路很漫长,一起共勉吧!

层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

[外链图片转存中…(img-rjoXOwDZ-1643890884579)]

[外链图片转存中…(img-3LdjBwro-1643890884580)]

最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。

希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!

转发+点赞+关注,第一时间获取最新知识点

Android架构师之路很漫长,一起共勉吧!

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值