ArrayAdapter使用


ArrayAdapter使用,先看构造函数,

1.public ArrayAdapter (Context context, int resource)  
这个构造函数只有两个参数,第一个一个是Context上下文,通常是ListView所在的Activity;另外一个是一个资源id,代表一个TextView。这个资源id可以采用系统的,比如 android.R.layout.simple_expandable_list_item_1.也可以使用自己的,但需要注意的是,自定义布局文件时只能有一个TextView,其他的组件不能出现。否则会报错:ArrayAdapter requires the resource ID to be a TextView。数据源需要调用实例方法add(T object)来填充,并且会将object对象的toString()之后的值填充到第二个参数指定的TextView上。
2.public ArrayAdapter (Context context, int resource, int textViewResourceId)
第一个参数依然是上下文,第二个参数是一个布局文件的资源id,第三个参数是包含在布局文件中的textView的资源id。这个构造函数使我们有限度的实现自定义效果,添加数据源的方法同上。
3.public ArrayAdapter (Context context, int resource, T[] objects)
这个构造函数可以使我们实现很大限度的自定义效果。具体步骤为:1.声明一个类继承自ArrayAdapter;2.创建一个布局文件,并传入构造函数第二个参数中;3.重写
public View getView (int position, View convertView, ViewGroup parent)


4.ArrayAdapter( Context context, int resource, int textViewResourceId, T[] objects)
这个构造函数和第二个构造函数一样,只不过这个构造函数同时指定了数据源。
ArrayAdapter( Context context, int resource, int textViewResourceId, T[] objects)

5.ArrayAdapter ( Context  context, int resource,  List <T> objects)
这个构造函数和第三个差不多,只不过数据源形式有所差别,一个为数组,一个是List集合

6.ArrayAdapter ( Context  context, int resource, int textViewResourceId,  List <T> objects)
这个构造函数和第四个差不多

下面是在项目中ArrayAdapter使用例子:

public class SearchResultArrayAdapter extends ArrayAdapter<SuggestionResult.SuggestionInfo> {
private int resourceId;


public SearchResultArrayAdapter(Context context, int textViewResourceId,
List<SuggestionResult.SuggestionInfo> objects) {
super(context, textViewResourceId, objects);
this.resourceId = textViewResourceId;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout userListItem = new LinearLayout(getContext());
SuggestionResult.SuggestionInfo info = getItem(position);
String name = info.key;
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(resourceId, userListItem, true);
TextView nametxt = (TextView) userListItem
.findViewById(R.id.searchResultName);
nametxt.setText(name);
return userListItem;
}
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值