我正在使用此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
页。
注意: 我正在为两个页面使用片段。
答案 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;
}
});
}