2017-01-21 3 views
0

Ich verwende diese Mikepenz Material Drawer Library für meine Schublade. Wenn ein Objekt auf das Fach angeklickt wird, bewegt es sich zu einer Seite und von dieser Seite aus kann ein Benutzer weiter zu einer anderen Seite navigieren.Zurück Schaltfläche wird nicht zur vorherigen Seite gehen Android

Das heißt:

Drawer Item -> List of Items -> Item Details 

Das Problem ist, wenn der Benutzer klicken Sie auf dem Zurück auf der Item Details Seite, es nicht wieder zu List of Items Seite bewegen. Wenn jedoch eine Aufgabe (z. B. Post-Kommentar) auf der Seite Items Details ausgeführt wird, wird die Zurück-Schaltfläche dann korrekt auf die vorherige Seite verschoben.

Mein Code:

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

Der obige Code ist auf die Item Details Seite zu bewegen.

Hinweis: Ich verwende Fragmente für beide Seiten.

+0

bitte Ihre Aktivität/Fragment Code bereitstellen –

Antwort

0

> Mein Ratschlag wäre,

1.Upgrade von der Verwendung eines ListView zu einem RecyclerView.

2. Wenn Sie das zurück Button wenn Ihre Klasse erreichen wollen, ist die AppCompatActivity erstreckt, können Sie folgendes tun;

a). Fügen Sie den folgenden Code in die onCreate Methode ein.

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

b). Dann legen Sie den folgenden Code in onOptionsItemSelected()

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

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


     } 
     return super.onOptionsItemSelected(item); 
    } 

Hoffnung das funktioniert.

0

Sobald der Griff nach oben von der Rückseite knallen sich stapeln und es überprüfen .. Es ist für mich gearbeitet

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

Dieses es gelöst

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

    }); 
} 
Verwandte Themen