我创建了main.xml
和list.xml
我的java类扩展menuActivity
我有2个向量 -
Vector<String> name=new Vector<String>();
Vector<String> nickname=new Vector<String>();
我也创建了custom holder class
。
我的问题是如何将这两个列表传递给我的适配器类。
我应该使用哪个适配器?
我尝试将这两个向量放在另一个列表中并将该列表发送到我的自定义adpater类。但它没有成功。 我被困在这里。 baseadpater和数组适配器有什么区别?
答案 0 :(得分:1)
所有BaseAdpater都会固化AbsListView所需的回调。 ArrayAdater是一个更全面的适配器,可以自动将项目列表扩展为TextView。
根据您的情况,我建议扩展BaseAdapter:
class MyAdapter extends BaseAdapter {
Vector<String> names;
Vector<String> nicks;
public MyAdapter(Vector<String> nms, Vector<String> nks) {
if (nms.size() != nks.size())
throw new RuntimeException("oops! Wrong sizes for vectors");
name = nms;
nicks = nks;
}
@Override
public int getCount() {
return names.getSize() && nicks.getSize();
}
@Override
public String getItem() {
// Can't really implement with two vectors.
return null;
}
@Override
public getView(int pos, View convert, ViewGroup mommy) {
LinearLayout ll = (LinearLayout)convert;
if (ll == null)
// Inflate the linear layout - preferrably from resources
ViewHolder vh = (ViewHolder)ll.getTag();
if (vh == null)
// Inflate ViewHolder
vh.tvname.setText(names.get(pos));
vh.tvnick.setText(nicks.get(pos));
return ll;
}
class ViewHolder {
TextView tvname, tvnick;
}
}