android - 在 EditText 上禁用键盘

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

我正在做一个计算器。 所以我用数字和函数制作了自己的 Buttons。 必须计算的表达式在 EditText 中,因为我希望用户也可以在表达式中间添加数字或函数,所以使用 EditText 我有光标。但是我想在用户单击 EditText 时禁用 Keyboard。 我发现这个例子对于 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;     
   }         
}

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

<com.my.package.NoImeEditText
      android:id="@+id/etMy"
 ....  
/>

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

最佳答案

以下代码适用于 API >= 11 和 API < 11。光标仍然可用。

/**
 * Disable soft keyboard from appearing, use in conjunction with android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
 * @param editText
 */
public static void disableSoftInputFromAppearing(EditText editText) {
    if (Build.VERSION.SDK_INT >= 11) {
        editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
        editText.setTextIsSelectable(true);
    } else {
        editText.setRawInputType(InputType.TYPE_NULL);
        editText.setFocusable(true);
    }
}

关于android - 在 EditText 上禁用键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636635/

相关文章:

android - java.io.IOException : AUTHENTICATION_FAILED in Android Firebase (and SERVICE_NOT_AVAILABLE)

android - 我怎样才能在android中以公里为单位获得两个经度和两个纬度之间的距离?

Android:应用程序链接 - 仅支持某些路径?

ios - 在 iOS Objective-c 中粘在键盘上的自定义 UIView

android - 当 Recyclerview 中的 Edittext 滚出屏幕时隐藏键盘

java - SearchView.OnCloseListener 不会被调用

android - 没有 EditText 和检测按键的软键盘

javascript - 无法获取正确的 key 代码

java - R.layout 类型未定义方法 findViewById(int)

java - Android:防止Alert中的EditText为空