Вращающийся экран с более чем одним списком - список теряет контент - PullRequest
1 голос
/ 11 июля 2011

У меня странная проблема при повороте экрана с несколькими списками просмотра.

Я использую:

 public void onConfigurationChanged(Configuration newConfig) {
 super.onConfigurationChanged(newConfig);

для сохранения содержимого страниц при его повороте.Первоначальный просмотр списка поддерживает свое содержимое в порядке, но мой другой просмотр списка очищается при каждом повороте экрана.Это происходит в двух моих действиях, которые выполняют аналогичные действия.

Код для заполнения представлений приведен ниже.

Кто-нибудь знает, как я могу поддерживать данные списка для обоих списков?*

Спасибо

private void populateList() {
   // Get all of the fixtures from the database and create the item list
   Cursor c = mDbHelper.fetchAllFixtures();
   startManagingCursor(c);

   String[] from = new String[] { FixturesDbAdapter.KEY_JUSTDATE,      FixturesDbAdapter.KEY_JUSTTIME, FixturesDbAdapter.KEY_HOMETEAM, FixturesDbAdapter.KEY_HOMESCORE,FixturesDbAdapter.KEY_AWAYSCORE, FixturesDbAdapter.KEY_AWAYTEAM, FixturesDbAdapter.KEY_LOCATION, FixturesDbAdapter.KEY_COMPETITION};
   int[] to = new int[] { R.id.fixtextlist, R.id.fixtextlistkotime, R.id.fixtextlisthome, R.id.fixtextlisths, R.id.fixtextlistas, R.id.fixtextlistaway, R.id.fixtextliststad, R.id.fixtextlistcomp};

   // Now create an array adapter and set it to display using our row
   SimpleCursorAdapter fixtures =
       new SimpleCursorAdapter(this, R.layout.fixlist_item, c, from, to);
   setListAdapter(fixtures);

   Cursor c2 = mDbHelper.fetchAllResults();
   startManagingCursor(c2);

   String[] from2 = new String[] { FixturesDbAdapter.KEY_JUSTDATE, FixturesDbAdapter.KEY_JUSTTIME, FixturesDbAdapter.KEY_HOMETEAM, FixturesDbAdapter.KEY_AWAYTEAM, FixturesDbAdapter.KEY_LOCATION, FixturesDbAdapter.KEY_COMPETITION};
   int[] to2 = new int[] { R.id.fixtextlist, R.id.fixtextlistkotime, R.id.fixtextlisthome, R.id.fixtextlistaway, R.id.fixtextliststad, R.id.fixtextlistcomp};

   // Now create an array adapter and set it to display using our row
   ListView resultsView = (ListView) findViewById(R.id.list2);
   SimpleCursorAdapter results =
       new SimpleCursorAdapter(this, R.layout.fixlist_item2, c2, from2, to2);
   resultsView.setAdapter(results);


  }

1 Ответ

0 голосов
/ 14 июля 2011

Неизбежно я в конце концов ответил на свой вопрос: p

Похоже, что в стандартном Android ListView сохранено его состояние, однако пользовательский ListView, где представление должно быть объявлено, не делает.

Поэтому я просто запустил метод изнутри метода onConfigurationChanged (). Кажется, это работает нормально.

, например

  public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  populateCustomList();
  }

Это, вероятно, работа, которую не нужно делать, но эй, это решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...