在使用多个列表视图旋转屏幕时,我遇到了一个奇怪的问题。
我利用:
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);
}
答案 0 :(得分:0)
我不可避免地最终回答了自己的问题:p
似乎标准的Android ListView已保存状态,但是必须声明视图的自定义ListView不会。
因此我只是从onConfigurationChanged()方法中运行该方法。这似乎工作正常。
e.g。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
populateCustomList();
}
这可能是不需要做的工作,但是嘿,它解决了这个问题。