我尝试ListView
在每个项目上使用特定的图标,标题和副标题来实现。
所有项目的数据均ArrayList
来自的对象中class
:
class ItemObject{
String title="";
String subTitle="";
String unit="";
int icon;
int quantity;
int parentID;
int orderInList;
}
ArrayList<ItemObject> listViewData;
这是我首先使用的代码:
class ExtendedArrayAdapter<String> extends ArrayAdapter<String>{
private Context context;
private String[] items;
public ExtendedArrayAdapter(Context context, String[] items){
super(context,-1,items);
this.context = context;
this.items=items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.lv_item_bg,parent,false);
TextView itemTitle = (TextView)itemView.findViewById(R.id.itemTitle);
TextView itemSubTitle = (TextView)itemView.findViewById(R.id.itemSubTitle);
ImageView itemIcon = (ImageView)itemView.findViewById(R.id.itemIcon);
itemTitle.setText(listViewData.get(position).title);
itemSubTitle.setText(listViewData.get(position).subTitle);
itemIcon.setBackgroundResource(listViewData.get(position).icon);
return itemView;
}
}
而对于这个自定义ArrayAdapter的问题是ExtendedArrayAdapter
需要String[]
的items
,以获得数ListView
项。
问题:是否可以更改ExtendedArrayAdapter
类以直接获取ListView
而不是的长度String[] items
?
和所有需要Array<String>
或List<String>
。所以我不能在这里使用我的ArrayList对象。
是否可以更改ExtendedArrayAdapter类以直接获取ListView的长度而不是String []项目的长度?
所ListView
处理项目的长度,由给出Adapter.getCount()
。如果我的理解正确,那么您的问题的答案是否定的。您的适配器的定义应更改为
class ExtendedArrayAdapter extends ArrayAdapter<ItemObject>{
你将不得不改变constructor
和类型items
,以及
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句