相关疑难解决方法(0)

在EditText上禁用键盘

我正在做一个计算器.所以我Buttons用数字和函数做了我自己的.必须计算的表达式是在一个EditText,因为我希望用户也可以在表达式的中间添加数字或函数,所以EditText我有cursor.但我想Keyboard在用户点击时禁用EditText.我发现这个例子可以Android 2.3,但是ICS禁用Keyboard了光标和光标.

public class NoImeEditText extends EditText {

   public NoImeEditText(Context context, AttributeSet attrs) { 
      super(context, attrs);     
   }   

   @Override      
   public boolean onCheckIsTextEditor() {   
       return false;     
   }         
}
Run Code Online (Sandbox Code Playgroud)

然后我NoImeEditText在我的XML文件中使用它

<com.my.package.NoImeEditText
      android:id="@+id/etMy"
 ....  
/>
Run Code Online (Sandbox Code Playgroud)

如何使这个EditText与ICS兼容??? 谢谢.

keyboard android android-edittext android-4.0-ice-cream-sandwich

62
推荐指数
11
解决办法
8万
查看次数

隐藏softkeypad的方法不会影响android中edittext的功能

我隐藏了软键盘,因为我在应用程序上有自定义键盘.单击edittext时,不应弹出软键盘.所以,我从源头上尝试了很多方法,但没有任何方法可行editText.setFocusable(false);.但是现在问题是当我点击它时甚至没有突出显示的是edittext没有突出显示.我已经尝试过使用InputManager,android:windowSoftInputMode="stateAlwaysHidden在清单中引用了很多像链接1,链接2等,但这些技术至少甚至都没有隐藏我的应用程序上的软键盘.最后我通过setFocusable得到了这个,但是有一个突出显示问题和光标不可见的问题,甚至requestFocus()在onClickListener中也没有用.有人能为这个问题提供准确的解决方案吗 代码片段表示赞赏.

android hide soft-keyboard android-edittext

11
推荐指数
1
解决办法
351
查看次数

如何为特定活动禁用Android Soft Keyboard?

我有一个EditText活动,我只需要输入数字.

现在,我已经将EditText的输入类型定义为仅限数字,并为我的用户绘制了一个漂亮的键盘,但是我还需要确保在用户点击时不会弹出软键盘EditText.

我试图通过添加隐藏键盘通过清单

android:windowSoftInputMode="stateAlwaysHidden"
Run Code Online (Sandbox Code Playgroud)

在我的Manifest中针对特定活动,但这对我不起作用,因为只要用户点击EditText,键盘就会再次出现.

我尝试过以编程方式执行相同操作

activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.用户单击EditText时会出现键盘.

唯一有效的方法是将EditType的InputType设置为null,如下所示:

EditText.setInputType(InputType.TYPE_NULL);
Run Code Online (Sandbox Code Playgroud)

但我不能使用它,因为它允许键盘连接到他们设备的用户在EditText字段中输入字母和其他符号,而我希望每个人都专门使用键盘在字段中输入数据.

我还应该提一下,我目前正在Android 2.1下测试我的应用程序,但我希望我的解决方案适用于所有版本.任何帮助,将不胜感激.提前致谢.

keyboard android soft-keyboard android-edittext

10
推荐指数
2
解决办法
3万
查看次数

防止键盘出现在 Jetpack Compose 应用程序中

我正在制作一个计算器来学习 Compose,因此我在屏幕上放置了自己的数字按钮,并且我想防止软键盘出现。

这是我的仓库: https: //github.com/vitor-ramos/CalculadorCompose

我注意到 TextFieldImpl.kt 中有一个修饰符来显示键盘,所以我尝试克隆代码并删除该行:keyboardController.value?.showSoftwareKeyboard()我知道复制这样的代码不是一个好主意,但我想尝试一下,并且它不起作用。正如您在下面的原始代码中看到的,有一个 TODO 说它应该由 BaseTextField 处理,但我查看了它的代码,没有找到它显示或隐藏键盘的位置。

val textFieldModifier = modifier
    .focusRequester(focusRequester)
    .focusObserver { isFocused = it.isFocused }
    .clickable(indication = null) {
        focusRequester.requestFocus()
        // TODO(b/163109449): Showing and hiding keyboard should be handled by BaseTextField.
        //  The requestFocus() call here should be enough to trigger the software keyboard.
        //  Investiate why this is needed here. If it is really needed, instead of doing
        //  this in the onClick callback, we should move this logic …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

9
推荐指数
3
解决办法
9313
查看次数