android - 在 Android 中屏幕旋转时 View 是清除数据

标签 android

我有一个在运行时创建的 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/

相关文章:

java - 为什么我无法将数组中的 View 分配给监听器?

android - session 已关闭;进一步的改变是非法的

java - 连接异常 - XMLPullParser

android - 包括AAR lib编译错误: no resource identifier found

Java - 将默认浮点常量类型从 double 更改为 float

java - 方向更改崩溃后替换 fragment

android - Android 中 keystore 有效性的含义是什么?

android - 使用 onInterceptTouchEvent() 时检测触摸事件

android - 更改 Lollipop 上的通知图标背景

android - 快速 throw 期间的 RecyclerView ANR