在我的布局上,我有一些按钮可以做出一些选择,然后是一个按钮来执行对数据库的查询。此查询的结果显示在ListView
此布局内部。
问题是,如果在我执行查询后旋转屏幕,它ListView
就会消失并且必须再次执行查询。
我相信这是因为活动重新开始而发生的。按照此处的建议,我已在清单android:configChanges="orientation|keyboardHidden"
中的活动和添加的代码中添加:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.mylayout);
}
但这不起作用。
这是我的活动的完整代码:
public class MyClass extends ListActivity implements OnClickListener, OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
// Creates the buttons and setOnClickListener and setOnCheckedChangeListener
}
@Override
public void onClick(View v) {
// Manages the buttons and their functions
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// See what group in radio group is checked
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// After pressing one button, a query is made and a listview is shown.
// This it to handle the user choice after he clicks an item on the listview
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.mylayout);
}
}
这很奇怪,因为我还有其他类似的活动:
public class AtoZ extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.atoz);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
}
这也会对数据库执行查询,将其显示在 a 上ListView
,然后处理用户选择。如果我旋转屏幕,ListView
仍然显示。
我能做些什么?