我正在尝试使用带有 Theme.Dialog 的 Activity 来模拟软件键盘。键盘活动仅覆盖屏幕的一部分。底层活动仍然处于活动状态,可以直接控制。我希望输入的文本在输入时显示在基础活动中。
有没有办法我可以做到这一点?我正在考虑将我的 EditText 的引用放入 Intent Bundle,但这似乎不正确。
编辑:有人回答使 EditText 静态,但随后删除了响应。如果这被证明是正确的反应,他们可以把它加回来吗?
我正在尝试使用带有 Theme.Dialog 的 Activity 来模拟软件键盘。键盘活动仅覆盖屏幕的一部分。底层活动仍然处于活动状态,可以直接控制。我希望输入的文本在输入时显示在基础活动中。
有没有办法我可以做到这一点?我正在考虑将我的 EditText 的引用放入 Intent Bundle,但这似乎不正确。
编辑:有人回答使 EditText 静态,但随后删除了响应。如果这被证明是正确的反应,他们可以把它加回来吗?
它不起作用..您的活动将处于暂停状态..您尝试在那里调用某些东西肯定会引发异常..不要尝试它..onActivityResult()
改为尝试...
:编辑
那么试试这个..
获取活动实例(我的意思是具有编辑文本的活动)然后
if(!yourActviity.isFinishing())
{
((EditText)yourActviity.findViewById(R.id.editText)).setText("text");
}
如果您正在使用自定义对话框,您可以使用其 mainactivity 上下文访问主活动中的变量。为此,您需要将上下文转换为 mainactivity 类型
我正在回答我自己的问题,因为提供原始答案的人将其删除,并且没有重新发布。
到目前为止,我发现的最佳解决方案是在软件键盘活动中创建一个静态字段,该字段指的是被操纵的 EditText。然后,调用 Activity 会在启动 Intent 之前更新此静态字段。
这可以无缝地工作,并且调用 Activity 被从堆栈中删除没有任何问题。