2015-01-09 3 views
0

У меня есть фрагмент под названием view_profile и активность под названием edit_profile После редактирования профиля, если пользователь нажмет на кнопку «Назад», я хочу получить обновленный контент.На задней кнопке нажата перезагрузка фрагмента

Прямо сейчас, на задней кнопке нажата, он просто загружает предыдущий фрагмент без перезагрузки содержимого. Как перезапустить операцию фрагмента?

Я искал в Интернете. Я нашел метод под названием onRestart. Но, я думаю, это метод активности, а не фрагмент.

+0

Почему вы не используете принцип общения между фрагментами или меканизм, как «startActivityForResult()» между вашими двумя фрагментами. – Houcine

ответ

-1

В файле view_profile используйте startActivityForResult для запуска операции edit_profile. В edit_profile, обрабатывать задние события кнопки, чтобы обновить содержание:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
     case android.R.id.home: 
     { 
      // update the content 
      this.getIntent().putExtra("CONTENT_PARCELABLE", (Parcelable)content_data); 
      this.getIntent().putExtra("CONTENT_STRING", (String)string_content_data); 
      setResult(RESULT_OK, this.getIntent()); 

      finish(); 
      return true; 
     } 
    } 
} 

...

в view_profile, получить обновленный результат от данных

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    boolean have_changes = false; 

    if (requestCode == REQUEST_RECORD_EDIT) 
    { 
     if (resultCode == RESULT_OK) 
     { 
      // update the content from data 
      updated_content = data.getParcelableExtra("CONTENT_PARCELABLE"); 
      updated_string_content = data.getStringExtra("CONTENT_STRING"); 
     } 
    } 
} 
+0

Вот что я делаю прямо сейчас. Он не перезагрузит содержимое –

+0

Я просто хочу снова вызвать метод onCreateView –

+0

Возможно, вам стоит объявить глобальную переменную, доступную из обоих видов деятельности, расширяя Application: http://stackoverflow.com/questions/708012/how- to-declare-global-variables-in-android/ – Flanker

0

Вы можете переопределить onBackPressed активности (в) и реализовать свою собственную логику.

Смежные вопросы