隐藏 EditText 的 Android 键盘

发布于 2024-10-14 16:43:21 字数 120 浏览 3 评论 0原文

每当我单击 EditText 时,就会出现 Android 键盘弹出窗口,但我不希望弹出键盘。

我想永久隐藏当前应用程序的 Android 键盘弹出窗口。

我该怎么做?

Whenever I click in the EditText the Android keyboard popup window appears, but I don't want the keyboard to pop up.

I want to permanently hide the android keyboard popup for my current application.

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

明月松间行 2024-10-21 16:43:21

将标记 textIsSelectable 设置为 true 将禁用软键盘。

您可以在 xml 布局中设置它,如下所示:

<EditText
    android:id="@+id/editText"
    ...
    android:textIsSelectable="true"/>

或者以编程方式设置,如下所示:

EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);

光标仍然存在,您将能够选择/复制/剪切/粘贴,但软键盘永远不会展示。

Setting the flag textIsSelectable to true disables the soft keyboard.

You can set it in your xml layout like this:

<EditText
    android:id="@+id/editText"
    ...
    android:textIsSelectable="true"/>

Or programmatically, like this:

EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);

The cursor will still be present, you'll be able to select/copy/cut/paste but the soft keyboard will never show.

你列表最软的妹 2024-10-21 16:43:21

您可以尝试使用如下按钮来伪造您的 EditText:

 <Button
     android:id="@+id/edit_birthday"
     style="@android:style/Widget.EditText"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:hint="@string/hint_birthday"/>

You may try to fake your EditText with a Button like this:

 <Button
     android:id="@+id/edit_birthday"
     style="@android:style/Widget.EditText"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:hint="@string/hint_birthday"/>
各自安好 2024-10-21 16:43:21

在清单中:

  <activity
        android:name=".YourActivity"
       .
       .
       .
        android:windowSoftInputMode="stateAlwaysHidden" >
   </activity>

In the manifest:

  <activity
        android:name=".YourActivity"
       .
       .
       .
        android:windowSoftInputMode="stateAlwaysHidden" >
   </activity>
山有枢 2024-10-21 16:43:21

适用于所有 Android 版本。

在您的 XML 中使用属性 android:textIsSelectable="true"

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    .
    .
    .
    android:textIsSelectable="true"/>

并且,在您的 Java 类中:

editText1.setShowSoftInputOnFocus(false);

在 Kotlin 中:

editText1.showSoftInputOnFocus = false

Works for all Android versions.

In your XML use the property android:textIsSelectable="true"

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    .
    .
    .
    android:textIsSelectable="true"/>

And, in your Java class:

editText1.setShowSoftInputOnFocus(false);

In Kotlin:

editText1.showSoftInputOnFocus = false
噩梦成真你也成魔 2024-10-21 16:43:21

解决方案可以在此处找到:

public void onCreate(Bundle savedInstanceState) {

edittext = (EditText) findViewById(R.id.EditText01);

edittext.setOnEditorActionListener(new OnEditorActionListener() {
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
         if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
            InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            in.hideSoftInputFromWindow(edittext.getApplicationWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
         }
         return false;
      }
   });
}

Solution can be found here :

public void onCreate(Bundle savedInstanceState) {

edittext = (EditText) findViewById(R.id.EditText01);

edittext.setOnEditorActionListener(new OnEditorActionListener() {
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
         if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
            InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            in.hideSoftInputFromWindow(edittext.getApplicationWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
         }
         return false;
      }
   });
}
寄离 2024-10-21 16:43:21

这两行应该做你想要的:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

These two line should do what you want:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
惯饮孤独 2024-10-21 16:43:21

试试这个

 public void disableSoftKeyboard(final EditText v) {
            if (Build.VERSION.SDK_INT >= 11) {
                v.setRawInputType(InputType.TYPE_CLASS_TEXT);
                v.setTextIsSelectable(true);
            } else {
                v.setRawInputType(InputType.TYPE_NULL);
                v.setFocusable(true);
            }
        }

Try This

 public void disableSoftKeyboard(final EditText v) {
            if (Build.VERSION.SDK_INT >= 11) {
                v.setRawInputType(InputType.TYPE_CLASS_TEXT);
                v.setTextIsSelectable(true);
            } else {
                v.setRawInputType(InputType.TYPE_NULL);
                v.setFocusable(true);
            }
        }
烂人 2024-10-21 16:43:21

尝试将其添加到您的 onCreate() 方法中。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

未经测试,但应该有效!

Try to add this in yout onCreate() method.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Not tested but It Should work!!

庆幸我还是我 2024-10-21 16:43:21

在你的 xml 文件中你可以使用这个:

android:editable="false"

In your xml file you can use this:

android:editable="false"
夏末的微笑 2024-10-21 16:43:21

在您的 xml 中将属性 editable 设置为 false。
它不会让您编辑文本,键盘也不会打开。

<EditText
     android:editable="false"
 />

In your xml set attribute editable to false.
it won't let you edit the text and the keyboard will not be opened.

<EditText
     android:editable="false"
 />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文