2016-11-19 3 views
0

Ich habe folgenden Aktivitätscode: -zu Fragmente von Aktivität Zurück

public class legislator_info extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_legislator_info); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     toolbar.setTitle("Legislator Info"); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     Intent i = getIntent(); 
     String bioguide = i.getExtras().getString("Person"); 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       // click on 'up' button in the action bar, handle it here 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
} 

Also im Grunde habe ich ein Fragment, das eine Listenansicht in ihm angezeigt hat. Beim Klicken auf eine Liste Artikel starte ich diese Aktivität und ich möchte mit dem Zurück-Knopf Klick zum vorherigen Fragment zurückkehren. Ich habe den obigen Code ausprobiert, kann aber nicht zurückreisen. Bin ziemlich neu dabei wird jede Hilfe geschätzt.

Ich habe meine Fragment in folgender Weise hinzugefügt: -

android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
      android.support.v4.app.FragmentTransaction ft = fm.beginTransaction(); 
      LegislatorFragment lf = new LegislatorFragment(); 
      ft.replace(R.id.fragment_container,lf); 
      ft.addToBackStack(null); 
      ft.commit(); 
+0

Ihren vollständigen Code –

+0

vollständigen Code von dem, was posten ?? Ich habe den vollständigen Code für die Aktivität –

+0

gepostet hast du nicht auf backpressed verwalten? –

Antwort

0

Ich bin immer noch nicht klar, was Sie erreichen wollen, aber Sie können diese

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    finish(); 
} 

EDIT versuchen:

case android.R.id.home: 
      //call onBackPressed here 
      onBackPressed(); 
      return true; 
+0

Ich möchte nur zu dem Fragment zurückgehen, von dem ich kam ... in meinem vorherigen Fragment: -yourListView.setOnItemClickListener (neu android.widget.AdapterView.OnItemClickListener()) @Override öffentliche void onItemClick (AdapterView Eltern, View view, int position, long id) { Person obj = (Person) yourListView.getItemAtPosition (position); Absicht intent = neue Absicht (ByState.this.getActivity(), legisator_info.class); intention.putExtra ("Person ", obj.getBioguide()); startActivity (Absicht); } }); –

+0

Und oben Code funktioniert auch nicht –

+0

Yup Es hat funktioniert, aber ich kann die Antwort nicht akzeptieren, weil mein Ruf ... vielen Dank :) –

0

Sie müssen onOptionsItemSelected überschreiben, weil Sie mit der Zurück-Schaltfläche der Aktionsleiste versuchen.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
switch (item.getItemId()) { 
    case android.R.id.home: 
     onBackPressed(); 
     return true; 
} 
return super.onOptionsItemSelected(item); 
} 

Dann BackPressed außer Kraft setzen -

@Override 
public void onBackPressed() 
{ 
FragmentManager fm = getSupportFragmentManager(); 
if (fm.getBackStackEntryCount() > 0) { 
     fm.popBackStack(); 
    } 
else { 
super.onBackPressed(); 
} 
} 
Verwandte Themen