我在android studio上开发的项目中有一个EdiText
。
android:id="@+id/Number"
android:layout_width="match_parent"
android:layout_height="100dp"
android:textSize="24dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
当我点击编辑文本时,我需要找到一种禁用键盘的方法,这意味着当我点击EditText
时键盘不应该打开。
答案 0 :(得分:4)
禁用它。
EditText et = (EditText) findViewById(R.id.edittext);
et.setEnabled(false);
OR
在xml中添加android:inputType="none"
答案 1 :(得分:2)
在你的代码中,你需要以这种方式编程:为InputMethodManager
声明一个全局变量:
private InputMethodManager im ;
在 onCreate()
方法中定义它:
im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(youredittext.getWindowToken(), 0);
将 onClickListener
设置为 onCreate()
内的编辑文字:
youredittext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
im.showSoftInput(youredittext, InputMethodManager.SHOW_IMPLICIT);
}
});
这样可行。
答案 2 :(得分:2)
这样做
final EditText editText = findViewById(R.id.Number);
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
答案 3 :(得分:2)
你走了。
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);
}
}
答案 4 :(得分:0)
如果您想阻止用户编辑文本,那么您可以在edittext
中使用android:enabled="false"
属性