2016-11-19 141 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); 
     } 
    } 
} 

所以基本上我有有它顯示的列表視圖中的片段。點擊列表項目我開始這個活動,我想回到上一個片段點擊後退按鈕。我嘗試了上面的代碼,但我無法返回。我很欣賞這個新的任何幫助。

我已經加入我的下列方式片段: -

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

完整的代碼?我發佈了活動 –

+0

的完整代碼,您是否管理過壓縮? –

回答

0

我還搞不清楚你想達到什麼,但你可以試試這個

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

編輯:

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 (Person)yourListView.getItemAtPosition(position); Intent intent = new Intent(ByState.this.getActivity(),legislator_info.class); intent.putExtra(「Person 「,obj.getBioguide()); startActivity(intent); } }); –

+0

以上代碼也不起作用 –

+0

是的它的工作,但我不能接受的答案,因爲我的聲譽...非常感謝:) –

0

您必須重寫onOptionsItemSelected,因爲您正在嘗試使用操作欄的後退按鈕。

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

然後覆蓋BackPressed -

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