具有多个列表视图的旋转屏幕 - 列表丢失内容

时间:2011-07-11 14:36:11

标签: android listview rotation

在使用多个列表视图旋转屏幕时,我遇到了一个奇怪的问题。

我利用:

 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 :(得分:0)

我不可避免地最终回答了自己的问题:p

似乎标准的Android ListView已保存状态,但是必须声明视图的自定义ListView不会。

因此我只是从onConfigurationChanged()方法中运行该方法。这似乎工作正常。

e.g。

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

这可能是不需要做的工作,但是嘿,它解决了这个问题。