2017-01-21 17 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從使用ListViewRecyclerView

2.如果你想實現回Button當你的類是擴展AppCompatActivity,你可以做以下; a)。

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; 
     } 

    }); 
} 
相關問題