我是Android开发的新手。我有2 ListView
s。当我点击第一个ListView
上的一个项目时,新数据集将显示在第二个项目中。我在第二个Button
(ListView
)中添加了onItemClick
。使用Adapter
。因此,当我点击Button
(了解详情)时,它会加载一个新的Activity
。因此,当我点击Back
Button
时,我需要在上一步中加载相同的数据(listview2)。
int images[] ={R.drawable.boc, R.drawable.commercial, R.drawable.nations, R.drawable.popls};
adp = new ItemsAdapter(getActivity(), images);
menu.setAdapter(adp);
menu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
TextView tv2 = (TextView) v.findViewById(R.id.listViewText);
/*ImageButton imgbtn = (ImageButton) v.findViewById(R.id.AddButton);
ImageButton imgbtn2 = (ImageButton) v.findViewById(R.id.AddInfo);
*/
switch (arg2) {
case 0:
ListAdapter adapter3 = new ListAdapter(getActivity(), boc) ;
menu2.setAdapter(adapter3);
break;
case 1:
// menu2.setAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1,subitems2));
ListAdapter adapter4 = new ListAdapter(getActivity(), bankcrcards) ;
menu2.setAdapter(adapter4);
break;
default:
break;
}
}
});
menu2.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
ImageView imgbtn1 = (ImageView) arg1.findViewById(R.id.imageView2);
imgbtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "error", Toast.LENGTH_SHORT).show();
expandableListView=new ExpandableListFragment();
FragmentTransaction transaction=getFragmentManager().beginTransaction();
transaction.setCustomAnimations( R.anim.fade_in, R.anim.fade_out);
transaction.replace(R.id.myFragement,expandableListView);
transaction.addToBackStack(null);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.commit();
}
});
}
});
答案 0 :(得分:0)
不建议在1个活动中使用2个列表视图,因为它可能会导致流量问题(就像您现在面临的那个)。
如果有不同的项目覆盖以下函数(BaseAdapter)以显示正确的视图,请考虑仅使用1个列表视图:
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
@Override
public int getViewTypeCount() {
return super.getViewTypeCount();
}
这将解决2 listview问题,而不是在单击项目并打开新活动时,您可以保存列表视图的实例状态,因此当您按下时可以使用以下example来查看回到以前的状态。
祝你好运答案 1 :(得分:0)
我可以建议您使用ListView
而不是使用两个ExpandableListView
。用户界面上的两个ListView
可能无法带来良好的体验。
关于如何处理大量数据的问题details here。
example here可以帮助您实施ExpandableListView