Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在EditText上禁用虚拟键盘?_Android_Kotlin - Fatal编程技术网

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

Android 如何在EditText上禁用虚拟键盘?,android,kotlin,Android,Kotlin,我已经开始在Kotlin开发一个新的Android应用程序,实际上在我的活动中,我有一个带有两个EditText的片段,如果在我的首选项中没有启用首选项“键盘”,我就不应该在那些EditText上显示虚拟键盘 因此,我尝试将ShowSoftInputFocus设置为false,因为这是另一个问题的解决方案,但它不起作用,因此我的代码如下所示: Fragment.kt override fun onViewCreated(view: View, savedInstanceState: Bundle

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

因此,我尝试将ShowSoftInputFocus设置为false,因为这是另一个问题的解决方案,但它不起作用,因此我的代码如下所示:

Fragment.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)
    }
}
覆盖已创建的视图(视图:视图,savedInstanceState:Bundle?){
super.onViewCreated(视图,savedInstanceState)
val sharedPref=activity?.getPreferences(Context.MODE\u PRIVATE)?:返回
val keyboard=sharedPref.getBoolean(“键盘”,真)
Toast.makeText(活动,keyboard.toString(),Toast.LENGTH\u LONG.show())
val qtaTxt=view.findviewbyd(R.id.qtaTxt)
如果(!键盘){
qtaTxt.showsoftwittenputonfocus=false//这里我必须禁用虚拟键盘
}
view.findviewbyd(R.id.btnArticoli).setOnClickListener{
findNavController().导航(R.id.action\u FirstFragment\u到\u SecondFragment)
}
}

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

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

一旦在AndroidManifest中禁用它,因为它是用户可以在“我的设置”活动中更改的参数,我如何以编程方式设置它?
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u STATE\u HIDDEN)