簡體   English   中英

帶按鈕的listview,單擊后調用上一步

[英]listview with button and call the previous step after clicking

我是android開發的新手。 我有2 ListView 當我在第一個ListView上單擊一個項目時,新的數據集將顯示在第二個中。 我已經在第二個ListViewonItemClick )中添加了一個Button 使用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();
                }
            });

        }
    });

不建議在1個活動中使用2個列表視圖,因為它可能導致流程問題(就像您現在面臨的那樣)。

如果有不同的項目,請考慮僅使用1個listview,以覆蓋以下功能(BaseAdapter的功能)以顯示正確的視圖:

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

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

這將解決2 listview問題,然后,當單擊項目並打開新活動時,您可以保存列表視圖的實例狀態,因此當您按回時,可以使用以下示例查看如何返回到先前狀態。

祝好運

我是否可以建議使用ExpandableListView而不是使用兩個ListView UI上的兩個ListView可能不會帶來良好的體驗。

這里有關於如何處理大量數據的詳細信息

此處示例應幫助您實現ExpandableListView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM