listview with button,点击后调用上一步

时间:2014-03-04 08:48:26

标签: android android-layout android-intent android-listview android-fragments

我是Android开发的新手。我有2 ListView s。当我点击第一个ListView上的一个项目时,新数据集将显示在第二个项目中。我在第二个ButtonListView)中添加了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();
                }
            });

        }
    });

2 个答案:

答案 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