2016-11-19 12 views
0

から戻っフラグメントに行く -私は、次のアクティビティコードを持って活動

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

だから基本的に私はそれに表示されたリストビューを持つフラグメントを持っています。リストのアイテムをクリックすると、このアクティビティが開始され、前のフラグメントに戻るボタンをクリックします。私は上記のコードを試みたが、私は戻って旅行することができません。これで何か助けがありがたいです。

私は次のように私のフラグメントを追加しました: - 私はあなたが達成したいのか、まだ明確ではないですが、あなたがこの

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

EDITしてみてください

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

何のあなたの完全なコード –

+0

完全なコードをポスト?? -

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

その後BackPressedオーバーライド私は活動の完全なコードを投稿しました –

+0

あなたはバックパックで管理しませんでしたか? –

答えて

0

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

私は以前の断片から戻ってきた断片に戻りたい:-yourListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView parent、Viewビュー、int位置、ロングid){ Person obj =(Person)yourListView.getItemAtPosition(position); インテントのインテント=新しいインテント(ByState.this.getActivity()、legislator_info.class); intent.putExtra( "Person "、obj.getBioguide()); startActivity(intent); } }); –

+0

そして上記のコードもうまくいきません –

+0

うん、うまくいきましたが、私の評判のために答えを受け入れることができません...ありがとうございました:) –

0

アクションバーの[戻る]ボタンを使用しているため、onOptionsItemSelectedを上書きする必要があります。

@Override 
public void onBackPressed() 
{ 
FragmentManager fm = getSupportFragmentManager(); 
if (fm.getBackStackEntryCount() > 0) { 
     fm.popBackStack(); 
    } 
else { 
super.onBackPressed(); 
} 
} 
関連する問題