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