listview
想要将两个不同的arraylist
合并到一个适配器中。
我尝试使用getView()
方法的位置值,但它没有向listview
显示正确的数据,首先它显示来自arrayList
的数据,在完成第二个arraylist
后应该开始显示。
ArrayList<A> list1 = new ArrayList<A>;
ArrayList<B> list2 = new ArrayList<B>;
我想将这两个列表添加到一个adapter.first我需要在list1之后添加list1来自list2的完整数据是display.i尝试使用getView()
方法的位置变量但它没有向我显示正确的数据。
如何实现这个目标?
答案 0 :(得分:2)
这可以通过将两个列表添加到一个列表中并将此公共列表设置为适配器来实现。
ArrayList<A> list1 = new ArrayList<A>();
ArrayList<Object> object = new ArrayList<Object>();
list1.add(new A());
object.add(new A());
ArrayList<B> list2 = new ArrayList<B>();
list2.add(new B());
object.add(new B());
object.add(new B());
listadapter mAdapterSeeLatest ;
mAdapterSeeLatest = new listadapter (getParent(),R.layout.help_row,object);
mCheckInListView.setAdapter(mAdapterSeeLatest);
private class listadapter extends ArrayAdapter {
ArrayList<Object> ListObject;
int srNumber = 1;
public listadapter (Context context, int textViewResourceId,
ArrayList<Object> objects) {
super(context, textViewResourceId, objects);
ListObject = objects;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
if(ListObject.get(position) instanceof A)
{
}
else if(ListObject.get(position) instanceof B)
{
}
}
//now set this object ArrayList() into the List.
答案 1 :(得分:1)
难道你不能把这两个组合成一个ArrayList吗?
List<String> newList = new ArrayList<String>(listOne);
newList.addAll(listTwo);