Android 单击后调用上一步

Android 单击后调用上一步,android,android-layout,android-intent,android-listview,android-fragments,Android,Android Layout,Android Intent,Android Listview,Android Fragments,我是android开发新手。我有2个ListViews。当我在第一个列表视图中单击一个项目时,新的数据集将显示在第二个数据集中。我在第二个列表视图中添加了一个按钮(单击)。使用适配器。因此,当我点击按钮时(阅读更多内容),它将加载一个新的活动。因此,当我单击返回按钮时,我需要在上一步中加载相同的数据(listview2) int images[] ={R.drawable.boc, R.drawable.commercial, R.drawable.nations, R.drawable.pop

我是android开发新手。我有2个
ListView
s。当我在第一个
列表视图中单击一个项目时,新的数据集将显示在第二个数据集中。我在第二个
列表视图中添加了一个
按钮
单击
)。使用
适配器
。因此,当我点击
按钮时(阅读更多内容),它将加载一个新的
活动
。因此,当我单击
返回
按钮时,我需要在上一步中加载相同的数据(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();
                }
            });

        }
    });
int-images[]={R.drawable.boc,R.drawable.commercial,R.drawable.nations,R.drawable.popls};
adp=newitemsadapter(getActivity(),images);
菜单设置适配器(adp);
menu.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
TextView tv2=(TextView)v.findViewById(R.id.listViewText);
/*ImageButton imgbtn=(ImageButton)v.findViewById(R.id.AddButton);
ImageButton imgbtn2=(ImageButton)v.findViewById(R.id.AddInfo);
*/
开关(arg2){
案例0:
ListAdapter3=新的ListAdapter(getActivity(),boc);
菜单2.设置适配器(适配器3);
打破
案例1:
//menu2.setAdapter(新阵列适配器)(此,
//android.R.layout.simple_list_item_1,subitems2);
ListAdapter4=新的ListAdapter(getActivity(),bankcrcards);
菜单2.设置适配器(适配器4);
打破
违约:
打破
}
}
});
menu2.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
ImageView imgbtn1=(ImageView)arg1.findViewById(R.id.imageView2);
imgbtn1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Toast.makeText(getActivity(),“error”,Toast.LENGTH_SHORT.show();
expandableListView=新的ExpandableListFragment();
FragmentTransaction=getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
事务.replace(R.id.myFragement,expandableListView);
transaction.addToBackStack(空);
transaction.setTransition(FragmentTransaction.transition\u FRAGMENT\u OPEN);
commit();
}
});
}
});

不建议在一个活动中使用两个列表视图,因为这可能会导致流问题(如您现在面临的问题)

如果有不同的项覆盖(BaseAdapter的)以下函数以显示正确的视图,请考虑仅使用1个listview:

 @Override
    public int getItemViewType(int position) {
        return super.getItemViewType(position);
    }

    @Override
    public int getViewTypeCount() {
        return super.getViewTypeCount();
    }
这将解决2 listview的问题,然后,当单击项目并打开新活动时,您可以保存列表视图的实例状态,这样当您按back键时,您可以使用以下命令查看如何返回到以前的状态


祝您好运

我可以建议您使用一个
可扩展的列表视图,而不是使用两个
列表视图
。用户界面上的两个
ListView
s可能不会带来良好的体验

关于如何处理大量数据有很多问题

应帮助您实现
ExpandableListView