Android ApiDemos示例解析(171):Views->Lists->4. ListAdapter

本文介绍如何通过自定义BaseAdapter创建ListAdapter,实现列表项UI定制。通过重写getView方法,使用SpeechView展示列表项,包含标题和内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本例通过自定义BaseAdapter(实现接口ListAdapter),创建了一个自定义的ListAdapter ,类似的例子可以参见Android ApiDemos示例解析(119):Views->Gallery->1. Photos

使用自定义的ListAdapter ,可以自定义列表项的显示UI,通过重载ListAdpater 的getView 方法,ListAdapter缺省返回的View为一TextView (文本框),Android ApiDemos示例解析(119):Views->Gallery->1. Photos中自定义返回ImageView.

本例返回一自定义View -SpeechView. 这个View由两个TextView构成,一个TextView显示Title,一个View显示内容:其构造函数定义如下:

public SpeechView(Context context, String title, String words) {
 super(context);

 this.setOrientation(VERTICAL);

 // Here we build the child views in code. They could also have
 // been specified in an XML file.

 mTitle = new TextView(context);
 mTitle.setText(title);
 addView(mTitle, new LinearLayout.LayoutParams(
 LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

 mDialogue = new TextView(context);
 mDialogue.setText(words);
 addView(mDialogue, new LinearLayout.LayoutParams(
 LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
}

自定义的SpeechListAdapter 的getView定义如下:

public View getView(int position, View convertView,
 ViewGroup parent) {
 SpeechView sv;
 if (convertView == null) {
 sv = new SpeechView(mContext, mTitles[position],
 mDialogue[position]);
 } else {
 sv = (SpeechView) convertView;
 sv.setTitle(mTitles[position]);
 sv.setDialogue(mDialogue[position]);
 }

 return sv;
}

因此列表的每项都显示为一个SpeechView:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值