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

EDIT:

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

Я просто хочу вернуться к фрагменту, из которого я пришел ... в моем предыдущем фрагменте: -yourListView.setOnItemClickListener (новый android.widget.AdapterView.OnItemClickListener() { @Override public void onItemClick (AdapterView parent, View view, int position, long id) { Person obj = (Person) yourListView.getItemAtPosition (position); Intent intent = new Intent (ByState.this.getActivity(), lawator_info.class); aim.putExtra ("Person ", obj.getBioguide()); startActivity (намерение); } }); –

+0

И выше код также не работает –

+0

Yup Это сработало, но я не могу принять ответ из-за моей репутации ... спасибо большое :) –

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