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