【问题标题】:onActivityResult() does not change TextView (setText()) if rotated before startActivityForResult()如果在 startActivityForResult() 之前旋转,onActivityResult() 不会更改 TextView (setText())
【发布时间】:2014-03-19 18:45:21
【问题描述】:

这有点棘手。我有一个个人资料Fragment 和一个“编辑详细信息”Button,它通过startActivityForResult() 打开一个新的Activity

onActivityResult() 中,通过setText() 编辑信息后,我用新数据重新加载TextViews。它工作正常。

但是如果我在单击编辑按钮之前旋转了配置文件片段,TextViews 将不会在保存新数据后显示它们。似乎 onSaveInstanceState() 保存了 TextView 文本并且不会让 onActivityResult() 更改它们...

【问题讨论】:

  • textview 的新数据保存在哪里?
  • 在数据库中。我在 onActivityResult() 上创建了一个光标,它始终带来新数据并设置 TextViews。如果屏幕不旋转,则每次都有效。
  • 顺便说一句,ActionBar 标题确实发生了变化。
  • 在 onActivityResult() 之后我检查并 tv.getText() 给了我新的文本......有没有在它之后调用任何方法来恢复旧数据??
  • 你需要自己恢复它。

标签: android settext screen-rotation onactivityresult


【解决方案1】:

在 runOnUiThread 中调用 setText()...

runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        display.setText("new text");
                    }
                });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2013-05-06
    • 2012-11-29
    • 1970-01-01
    • 2022-11-30
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多