我有一个在运行时创建的 View ,然后我在该 View (运行时)上绘制了一些 Canvas ,之后我旋转了我的屏幕。所有数据都消失了(重置).所以我把一些代码放在 AndroidManifest.xml 中,像这样
android:configChanges="keyboardHidden|orientation"
在我的 <activity>
然后我放一个@Override
功能
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) findViewById(R.id.myPaint);
layout.addView(mView);
}
但一切都无法解决我的问题。我想在每次旋转时都保留来自 View(运行时)的数据。
那是我的 onCreate 函数。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mView = new MyView(this);
setContentView(mView);
mView.requestFocus();
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) findViewById(R.id.myPaint);
layout.addView(mView);
}
最佳答案
您需要保存和加载要保留的数据。即使您在按照您的方式修改 list 时自己处理屏幕旋转,您仍然在自己重新加载 View 。重新阅读有关处理运行时更改的引用文档。您需要存储数据并相应地重新加载它。否则,当应用程序重新启动或重新加载 ContentView 时,它将丢失。
http://developer.android.com/guide/topics/resources/runtime-changes.html
关于android - 在 Android 中屏幕旋转时 View 是清除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789725/