BaseAdapter用法 的基本步骤

(1).建立2XML文件,一个是ListView控件,另一个是根据需求建立的布局文件

(2).定义一个ListVIiew并初始化,并建立private List<Map<String, Object>> getData()这个方法来存储ListVIiew的数据

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

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

map.put("title", "b1");

map.put("info", "android 1");

map.put("img", R.drawable.b1);

list.add(map);

(title,info,img是布局文件中各个控件的ID)

(3).建立一个新的类MyAdapter继承BaseAdapter,并 添加成员变量(ContextList)  添加构造方法 给构造方法传一个形参(contextlist

// 上下文

// Context con;

// 源数据

List<Map<String, Object>> list;

// xml布局文件转化成View文件所需要的类

private LayoutInflater mInflater;

public MyAdatper(Context con, List<Map<String, Object>> list) {

// this.con = con;

this.list = list;

this.mInflater = LayoutInflater.from(con);

}

(4).重写主要方法:第一个是:getCount();表示ListVIiew里面有多少Item().第二个是:public View getView(int position, View convertView, ViewGroup parent) ,在此方法中,用convertView.inflate(布局模板,NULL)方法得到一个布局模板的View对象(此方法是将一个XML文件转换成一个View对象),用此View对象得到 布局模板中的控件对象(findViewById()方法),为了方便,我们一般建立需要建一个定义控件专门的类,通过实例化这个类来调用里面的所有控件对象,在通过setXXX()这些方法来获取各个控件的内容。

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

// 把布局文件转化成View

convertView = mInflater.inflate(R.layout.listitem, null);

// 实例化工具类

ViewHolder holder = new ViewHolder();

// 通过布局找到布局中的控件

holder.img = (ImageView) convertView.findViewById(R.id.img);

holder.title = (TextView) convertView.findViewById(R.id.title);

holder.info = (TextView) convertView.findViewById(R.id.info);

 

holder.img.setBackgroundResource((Integer) list.get(position)

.get("img"));

holder.info.setText((CharSequence) list.get(position).get("info"));

holder.title.setText((String) list.get(position).get("title"));

// 返回布局

return convertView;

}

class ViewHolder {

ImageView img;

TextView title, info;

}

   (5).Activity类中实例化适配器(实例化MyAdapter),并设置ListView的适配器

// 实例化适配器

myAdapter = new MyAdatper(this, getData());

// 设置ListView的适配器

lisrView.setAdapter(myadapter);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,BaseAdapter是一个抽象类,是用于创建自定义适配器的基类。 以下是BaseAdapter的使用步骤: 1. 创建自定义适配器类并继承BaseAdapter。 ```c# public class MyAdapter : BaseAdapter { // 实现抽象方法 } ``` 2. 实现BaseAdapter中的抽象方法: - GetView():获取每个列表项的视图。 - GetItem():获取列表中指定位置的数据项。 - GetItemId():获取指定位置的数据项的ID。 - Count:获取列表中数据项的数量。 ```c# public override View GetView(int position, View convertView, ViewGroup parent) { // 获取列表项的视图 } public override Java.Lang.Object GetItem(int position) { // 获取指定位置的数据项 } public override long GetItemId(int position) { // 获取指定位置的数据项的ID } public override int Count { // 获取列表中数据项的数量 } ``` 3. 在适配器中添加数据源。 ```c# public List<string> mDataList = new List<string>(); ``` 4. 在GetView()方法中根据数据源创建视图。 ```c# public override View GetView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { view = LayoutInflater.From(mContext).Inflate(Resource.Layout.layout_item, null); } TextView tvName = view.FindViewById<TextView>(Resource.Id.tv_name); tvName.Text = mDataList[position]; return view; } ``` 5. 在Activity中使用自定义适配器。 ```c# MyAdapter adapter = new MyAdapter(this); listView.Adapter = adapter; ``` 以上就是在C#中使用BaseAdapter基本步骤

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值