Могу ли я обновить представление списка в одном упражнении, а я в другом? - PullRequest
3 голосов
/ 05 октября 2010

В настоящее время у меня есть макет вкладок с 2 вкладками, одна вкладка с представлением списка и одна с опцией make strings, чтобы я мог добавить их в представление списка.Обе вкладки имеют свою собственную активность, потому что это сделало код намного более структурированным, и мне не нужно повторять себя позже.

Позволяет сказать, что я во вкладке, которая предлагает мне создать строку, и я нажимаю обновлениекнопка списка, как мне обновить представление списка без startActivity ()?Если я использую startActivity (), он запускает List.java, и вместо отображения списка на вкладке представления списка, он занимает полный экран, который не соответствует назначению представления вкладки.Другими словами, startActivity () захватывает фокус из представления списка в виде вкладок и отправляет его на весь экран.

Спасибо за ваше время.

Редактировать: я хочу обновить действие вмоя вкладка списка, без запуска новой активности, которая переходит в полноэкранный режим и не обновляет ту, что на вкладке.

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Одно из решений состоит в том, чтобы ваша модель данных была отделена от вашего представления (Activity), в целом это хорошая практика, но в этом случае ваши две вкладки могут взаимодействовать с одной и той же моделью.

Вы можете предоставить доступ к модели данных в своем классе Application.Затем, когда onResume вызывается в вашем списке действий, вы можете обновить представление на основе текущих данных.

edit:

public class MyApplication extends Application {
   private List<MyObject> myData;

   public List<MyObject> getMyData() {
     return myData; 
   }

   public void setMyData(List<MyObject> mydata) {
     this.myData = myData;
   }
}

В вашем манифесте вам нужно добавить тег приложения, чтобы указатьчто он должен использовать MyApplication в качестве класса приложения.

Затем в своей деятельности:

   public void onResume() {
      MyApplication app = (MyApplication) getApplication();
      List<MyData> data = app.getMyData();
      // update  my view with the data
   }
0 голосов
/ 05 октября 2010

У меня была такая же проблема, когда я создавал свое приложение, и единственное решение, которое я нашел, было добавить этот флаг в мои намерения, чтобы каждый раз, когда я переходил на вкладку, он обновлялся сам

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

Надеюсь, это поможет.

...