【问题标题】:How to disable virtual keyboard on EditText? [duplicate]如何禁用 EditText 上的虚拟键盘? [复制]
【发布时间】:2021-04-20 14:44:25
【问题描述】:

我已经开始在 Kotlin 中开发一个新的 Android 应用程序,实际上在我的 Activity 中我有一个带有两个 EditText 的片段,如果在我的偏好中我没有启用偏好“键盘”我不应该显示那些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)
    }
}

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    最好的解决方案在于Project Manifest文件(AndroidManifest.xml),在activity构造中添加如下属性

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

    【讨论】:

    • 一旦它在 AndroidManifest 中被禁用,因为它是用户可以在我的设置活动中更改的参数,我如何以编程方式设置它?
    • getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多