2017-01-21 7 views
0

Я использую этот Mikepenz Material Drawer Library для моего выдвижного ящика. Когда элемент нажимается на Ящик, он перемещается на страницу и с этой страницы, пользователь может перейти дальше на другую страницу.Назад Кнопка не пойдет на предыдущую страницу Android

То есть:

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

> Мой совет был бы,

1.Upgrade с помощью 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); 
    } 

Надеется, что это работает.

0

После того, как обрабатывать выскакивают спины стека себя и проверить его .. Он работал для меня

@Override 
public void onBackPressed() { 
    if (getFragmentManager().getBackStackEntryCount() > 0){ 
     getFragmentManager().popBackStack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
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; 
     } 

    }); 
} 
Смежные вопросы