2013-12-06 4 views
1

У меня есть сценарий с двумя экранами.Как обновить экран при нажатии кнопки возврата

  1. экрана 1 представлены данные из API в формате списка
  2. Там есть кнопка «+» в строке меню
  3. При нажатии этой кнопки пользователь экран 2
  4. Пользователь может ввести некоторую информацию на экране 2 и нажмите кнопку «Сохранить» поверх этого экрана. Это делает POST для моего API и сохраняет данные.

После сохранения, я хотел бы поставить пользователя на экран 1. Я сделал это с этим:

@Override 
public boolean onOptionsItemSelected(MenuItem menuItem) { 
    if (menuItem.getTitle().toString().equalsIgnoreCase("save")) { 
     new CreateSomethingTask(this,enteredName.getText().toString(), id).execute(); 
     Intent listscreen = new Intent(getApplicationContext(), ShowListActivity.class); 
     startActivity(listscreen); 
     return true; 
    } 
    return true; 
} 

Однако добавленный элемент не отображается. Если я закрою приложение и снова открою его, появится элемент.

Есть ли хороший способ справиться с этим? Мне нравится, как приложение Github Android обрабатывает это при создании нового Gist. Но я не уверен, как это реализовать.

ответ

0

Вы должны запустить свой экран2 с помощью startActivityForResult(). Таким образом, вы можете отправить результат назад и код и приступить к обновлению экрана1. См. Пример: How to manage `startActivityForResult` on Android?

-1

Ниже функция может помочь вам, не пробовал.

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 

    callFunctionToRefreshList(); 
    //or redraw data from api 
    //setContentView(R.layout.activity_book); 
} 
Смежные вопросы