2017-12-27 242 views
3

我在我的项目开发android工作室有EdiText禁用弹出键盘android-studio

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点击键盘不应开启。

+1

的可能的复制[如何在EditText上时禁用键盘弹出?(https://stackoverflow.com/questions/10611833/how-to-disable-keypad-popup-when-on-edittext) –

回答

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); 
      } 
     }); 
+0

谢谢!工作! – hadadrefael

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); 
    } 
}); 

这将工作。

4

只需禁用它。

EditText et = (EditText) findViewById(R.id.edittext); 
et.setEnabled(false); 

OR

在XML

0

添加android:inputType="none"如果要防止用户编辑文本,那么你可以在EditText上使用android:enabled="false"财产

+0

我不希望他将被启用 - 我想他只是不能打开键盘.. – hadadrefael

+0

@hadadrefael好吧必须做到这一点吗?\ – Munir

+0

我用另一种方式,你的方式禁用所有的编辑文本,我只想要键盘 – hadadrefael

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); 
    } 
}