listview
想要将两个不同的arraylist
合并到一个适配器中。
我尝试使用 getView()
方法的位置值,但它没有向 listview
显示正确的数据,首先它显示来自 arrayList
之后的数据它完成第二个 arraylist
应该开始显示。
ArrayList<A> list1 = new ArrayList<A>;
ArrayList<B> list2 = new ArrayList<B>;
我想将这两个列表添加到一个适配器中。首先我需要在 list1 完成后添加 list1 显示来自 list2 的数据。我尝试使用 getView()
方法的位置变量,但它不是向我显示正确的数据。
如何实现?
最佳答案
这可以通过将两个列表添加到一个列表并将此公共(public)列表设置为适配器来实现。
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.
关于android - 将两个不同的 ArrayList 附加到一个适配器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656954/