后退按钮不会转到上一页Android

时间:2017-01-21 08:33:06

标签: android

我正在使用此Mikepenz Material Drawer Library作为我的抽屉。在抽屉上单击某个项目时,它会移动到某个页面,用户可以从该页面进一步导航到另一个页面。

那是:

  Drawer Item -> List of Items -> Item Details

问题是当用户点击Item Details页面上的返回时,它不会移回List of Items页面。但是当Items Details页面上的任务完成(例如发表评论)后,后退按钮将正确移动到上一页。

我的代码:

 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            Bean item = Bean.get(arg2);
            dbHelper.insertItemID(String.valueOf(item.getId()));
            getActivity().getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.frame_container, new ItemDetails())
                    .addToBackStack(null).commit();
        }
    });

以上代码将移至Item Details页。

注意: 我正在为两个页面使用片段。

3 个答案:

答案 0 :(得分:0)

&GT;我的建议是,

1.从使用ListView升级到RecyclerView

<强> 2。如果您希望在课程延长Button时获得后退AppCompatActivity,则可以执行以下操作;

A)。将以下代码放在onCreate方法中。

 getSupportActionBar().setDisplayShowHomeEnabled(true);
        android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("e.g comment..");

B)。然后将以下代码放在onOptionsItemSelected()

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

            case android.R.id.home:
                onBackPressed();
                break;


        }
        return super.onOptionsItemSelected(item);
    }

希望这有效。

答案 1 :(得分:0)

一旦自己处理了后挡板的弹出并检查它..它对我有用

 @Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0 ){
        getFragmentManager().popBackStack();
    } else {
        super.onBackPressed();
    }
}

答案 2 :(得分:0)

这解决了它

@Override
public void onResume(){
    super.onResume();
    getView().setFocusableInTouchMode(true);
    getView().requestFocus();
    getView().setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int KeyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_UP && KeyCode == KeyEvent.KEYCODE_BACK) {
                //getActivity().finish();
                getActivity().getSupportFragmentManager().beginTransaction().add(R.id.frame_container, new ListOfItems()).commit();
                return true;
            }
            return false;
        }

    });
}