如何在 EditText 上禁用虚拟键盘?

时间:2021-01-15 14:53:02

标签: android kotlin

我已经开始在 Kotlin 中开发一个新的 Android 应用程序,实际上在我的 Activity 中我有一个带有两个 EditText 的片段,如果在我的首选项中我没有启用首选项“键盘”,我不应该t 在那些 EditTexts 上显示虚拟键盘。

所以我试图做一些事情,比如将 showSoftInputOnFocus 设置为 false,因为它是另一个问题的解决方案,但它不起作用,所以我的代码如下所示:

片段.kt

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
    val keyboard = sharedPref.getBoolean("keyboard", true)

    Toast.makeText(activity, keyboard.toString(), Toast.LENGTH_LONG).show()

    val qtaTxt = view.findViewById<EditText>(R.id.qtaTXT)
    if (!keyboard) {
        qtaTxt.showSoftInputOnFocus = false //here i must disable the virtual keyboard
    }



    view.findViewById<Button>(R.id.btnArticoli).setOnClickListener {
        findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
    }
}

1 个答案:

答案 0 :(得分:3)

最好的解决方案是在项目清单文件(AndroidManifest.xml)中,在活动构造中添加以下属性

   <activity android:name=".MainActivity" 
          android:windowSoftInputMode="stateHidden" />