android - 如何在 Android 中维护软键盘和刷新布局

标签 android android-edittext android-softkeyboard android-configchanges

当设备旋转时,我有基于纵向/横向的不同布局。所以我不能把这一行放在 list 中:

android:configChanges="orientation|screenSize|keyboardHidden"

但是,如果用户在 EditText 字段中并且键盘已弹出,并且在该字段中填充了文本,然后他们旋转设备,键盘隐藏并且文本丢失(令用户沮丧).

有没有合适的方法来处理这种情况?

最佳答案

为什么你不能使用 android:configChanges 然后覆盖 onConfigurationChanged 然后将 EditText 中的任何内容存储在临时变量中,调用你的 UI 初始化方法 (从 onCreate 中取出 findViewById 并将其放在单独的方法中),然后将 EditText 设置为临时变量。

这是我为按钮所做的示例

@Override

public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);
    Log.i("configChange", "configChange");      
    String tmp = connect.getText().toString();
    boolean onTmp = on.isEnabled();
    boolean offTmp = off.isEnabled();
    boolean connTmp = reconnect.isEnabled();
    InitializeUI();
    connect.setText(tmp);
    on.setEnabled(onTmp);
    off.setEnabled(offTmp);
    reconnect.setEnabled(connTmp);
}

关于android - 如何在 Android 中维护软键盘和刷新布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010433/

相关文章:

java - 任务 com.google.firebase.a.v 被 java.util.concurrent.ThreadPoolExecutor 拒绝

android - 为什么我的 EditText 复制/粘贴菜单在 EditText 下?如何更改弹出窗口的 z 顺序?

android - ListView 中的 EditText 在滚动时由 onTextChanged 更新

android - 软键盘不会触发 ScrollView 中的滚动

java - 在键盘android上添加 View

android - 跨原生 GCC 4.8 构建 : libcpp Error: invalid conversion from long long to off_t (aka long int)

java - Android - ListView 和点击监听器

Android 多行数字 EditText

android - Android WebView HTML 会影响键盘或键盘功能吗?

Android:如何将文件从 URL 下载到应用程序的 Assets 文件夹?