相关疑难解决方法(0)

关闭/隐藏Android软键盘

我的布局中有一个EditText和一个Button.

在编辑字段中写入并单击后Button,我想隐藏虚拟键盘.我假设这是一段简单的代码,但我在哪里可以找到它的一个例子?

android soft-keyboard android-layout android-softkeyboard android-input-method

3641
推荐指数
59
解决办法
144万
查看次数

如何在关注edittext时显示软键盘

我想在EditText聚焦时自动显示软键盘(如果设备没有物理键盘),我有两个问题:

  1. 当我Activity显示时,我EditText的注意力集中但键盘没有显示,我需要再次点击它来显示键盘(显示我的键盘时应Activity显示).

  2. 当我在键盘上单击完成时,键盘被解除但是EditText保持聚焦并且不想要(因为我的编辑完成了).

要恢复,我的问题是在iPhone上有更多类似的东西:它使键盘与我的EditText状态同步(聚焦/不聚焦),当然如果有物理键盘,则不会出现软键盘.

keyboard android focus android-softkeyboard android-edittext

422
推荐指数
23
解决办法
35万
查看次数

如何以编程方式在EditText上设置焦点(并显示键盘)

我有一个布局,其中包含一些像这样的视图:

<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
Run Code Online (Sandbox Code Playgroud)

如何以EditText编程方式设置焦点(显示键盘)?

我已经尝试了这个,只有当我Activity正常启动时它才有效,但是当我在a中启动它时TabHost,它不起作用.

txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
Run Code Online (Sandbox Code Playgroud)

android focus android-edittext

159
推荐指数
9
解决办法
21万
查看次数

使用带有EditText的AlertDialog.Builder时,软键盘不会弹出

我使用AlertDialog.Builder来创建一个输入框,使用EditText作为输入方法.

遗憾的是,虽然EditText处于焦点状态,但软键盘不会弹出,除非您再次明确触摸它.

有没有办法强迫它弹出?

在(AlertDialog.Builder).show()之后尝试了以下内容.但无济于事.

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(input, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

谢谢!!

android android-softkeyboard android-input-method

115
推荐指数
8
解决办法
4万
查看次数

Android:Dialog中的EditText不会拉起软键盘

所以我有一个似乎常见的问题,就是我的对话框中的EditText在获得焦点时不会显示出来.我已经看过几个解决方法,比如在这个帖子中,这一个这一个(还有更多),但我从来没有见过一个令人满意的解释,为什么这首先发生.

我更倾向于让Android使用自己的EditTexts默认行为,而不是构建我自己的行为,但似乎每个人(在那些线程中)已经接受了Dialogs中EditTexts的默认行为是只给光标而没有键盘.那为什么会这样?

为了记录,这些解决方法似乎都没有对我有用 - 我最接近的是强制键盘出现对话框下面(使用InputMethodManager.toggleSoftKeyboard(*)).我的特殊配置是API15,EditText显示在AlertDialog中ListView的页脚中.设置了EditText android:focusable ="true",onFocusChangeListener 正在接收焦点事件.

编辑:

根据要求,这是我正在使用的特定代码段.我不打算整个布局,但在这个特定的应用程序中,EditText响应于按下对话框上的按钮而出现(类似于动作视图).它包含在RelativeLayout中,默认情况下可见性"已消失":

 <RelativeLayout 
       android:id="@+id/relLay"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_centerVertical="true"
       android:visibility="gone"
       android:layout_marginTop="5dp"
       android:layout_marginBottom="5dp">

        <ImageButton
            android:id="@+id/cancelBut"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:background="@color/transparent"
            android:src="@drawable/cancelButton" 
            android:layout_margin="5dp"/>

        <ImageButton
            android:id="@+id/okBut"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/cancelBut"
            android:background="@color/transparent"
            android:src="@drawable/okButton"
            android:layout_margin="5dp" />

        <EditText 
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:focusable="true"
            android:layout_toLeftOf="@id/okBut"/>
   </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

构建它的代码将relativeLayout的可见性设置为"Visible"(并隐藏其他UI元素).根据我使用EditText的经验,这应该足以在EditText聚焦时拉起键盘.但是,出于某种原因,情况并非如此.我可以在onFocusChangeListener上设置以下内容:

    edit_text.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // For whatever reason we need to request …
Run Code Online (Sandbox Code Playgroud)

android dialog android-softkeyboard android-edittext

79
推荐指数
6
解决办法
4万
查看次数

Android TextField:以编程方式设置焦点+软输入

在我看来,我有一个搜索EditText,我想以编程方式触发字段上的单击事件的行为,即将焦点放在文本字段上并在必要时显示软键盘(如果没有可用的硬键盘).

我试过了field.requestFocus().该字段实际上获得焦点但不显示软键盘.

我试过了field.performClick().但那只调用该字段的OnClickListener.

任何的想法 ?

android android-edittext

75
推荐指数
3
解决办法
8万
查看次数

显示对话框的软键盘

我正在显示一个带有edittext视图的对话框.但是,仅当用户按下编辑视图内部时,才会打开软键盘.所以我尝试使用以下代码调用InputMethodManager.

InputMethodManager imm =
 (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(dialogField,0);
Run Code Online (Sandbox Code Playgroud)

dialogField是输入字段.但是,我到底应该这样做呢?我在对话框的onStart()方法中尝试了它,但没有任何反应.我之前也尝试过请求对话框的焦点,但这没有任何改变.

我也试过这段代码

dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    public void onFocusChange (View v, boolean hasFocus)
    {
        if (hasFocus)
        {
            Main.log("here");
            dialogInput.getWindow().setSoftInputMode(
              WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
            /*
                InputMethodManager mgr =
                  (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.showSoftInput(dialogField,0);
            */
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

在两个版本中.但是没有软键盘会出现.Main.log只是一个日志,它向我显示该函数实际被调用.是的,它被称为.

在对话框打开之前,我可以使用SHOW_FORCED标志获取键盘.但是在退出时它不会关闭.而且我只能在显示对话框之前这样做.在任何回调中它也不起作用.

android android-sdk-2.1 android-softkeyboard

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

自动显示键盘

请解释一下软键盘的问题.例如,我在我的活动或对话片段或片段活动上有一个EditText,无论如何.这里是:

<EditText
    android:id="@+id/edPswrd"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPassword" >

    <requestFocus />
</EditText>
Run Code Online (Sandbox Code Playgroud)

当它第一次显示我没有看到软键盘并且必须按editText才能获得焦点并且键盘出现.另一个活动是不同的,当它出现在屏幕上时,键盘在没有任何帮助的情况下加载.我以为

<requestFocus />

意味着EditText将被聚焦并且键盘将出现,但我错了.

如何管理哪些组件将获得焦点,键盘将自动显示.

java keyboard android focus android-activity

42
推荐指数
5
解决办法
5万
查看次数

每当打开AlertDialog.Builder对象时显示软键盘

我打开输入对话框的代码如下:

final AlertDialog.Builder alert = new AlertDialog.Builder(this);  
alert.setTitle("Dialog Title");  
alert.setMessage("Request information");  
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.edittextautotextlayout, null);
final EditText inputBox = (EditText) textEntryView.findViewById(R.id.my_et_layout);
alert.setView(inputBox);
Run Code Online (Sandbox Code Playgroud)

这很好用,除了我必须在软键盘出现之前点击文本输入行.

按照这里给出的建议我尝试插入:

inputBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            alert.getWindow().setSoftInputMode( 
               WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

但Eclipse对象"没有为AlertDialog.Builder类型定义方法getWindow()".

似乎setOnFocusChangeListener代码适用于AlertDialog对象,但不适用于AlertDialog.Builder.我应该如何修改我的代码以使软键盘自动显示.

keyboard android android-edittext android-alertdialog

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

检测EditText上的触摸,但不中断它?

我需要知道用户何时触摸/点击/点击我的活动中的edittext.

如何在不中断事件的情况下执行此操作,以便键盘仍能正常显示?

(在操作系统显示键盘之前我需要了解它...如果可能的话)

android

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

Android中有没有办法判断用户设备是否有实际的键盘?

我想检测当前用户手机是否有硬件键盘或只有屏幕键盘.这可能与SDK有关吗?

android android-keypad

6
推荐指数
1
解决办法
1636
查看次数

组件挂载时如何在 React Native 中自动打开键盘?

我的页面只有一个TextInput,并且我已经传入了autoFocus 道具: autoFocus: true

<TextInput
   style={styles.textInput}
   placeholder="Quiz Deck Title"
   autoFocus={true}
   value={this.state.title}
   onChangeText={(title) => this.controlledTextInput(title)}
/>
Run Code Online (Sandbox Code Playgroud)

我试图避免的是要求用户TextInput在键盘弹出之前“单击”框中。

但我想让软键盘也自动打开(如果设备没有硬件键盘)。

有没有办法让本机反应发生这种情况?我正在为 ios 和 android 开发。

如果重要的话,我的页面是通过 TabNavigator 导航到的。
我提到这一点是因为对另一个类似的 SO 问题(见下文)的评论表明他们在使用 StackNavigator 到达他们的页面时遇到了类似的问题。

关于类似问题的注意事项:
如何在 React Native 中自动打开键盘? : 没有提供解决方案,其他人的评论和我的结果一样:输入有焦点,但键盘没有自动打开。
关闭/隐藏 Android 软键盘 Android:当焦点位于 EditText 时自动显示软键盘 :使用原生 android 代码 (java),而不是响应原生代码 (javascript)。

注意:我正在使用带有 android 23(推荐)的 android 模拟器 Nexus 6P 和带有 iPhone 6s 的 ios 模拟器进行开发,因为我没有物理设备。

编辑:添加请求的代码

NewDeck.js(我希望键盘自动弹出的视图):

import React from 'react';
import { connect …
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation

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

Android:当焦点在EditText无效时,对话框会自动显示软键盘

Android:焦点在EditText上时自动显示软键盘

我已经阅读了这篇文章,它会在显示一个对话框时自动显示虚拟键盘.但是,它不适合我.任何想法为什么?虽然当对话框出现时编辑文本自动聚焦,但事件不会触发.我也读过onpostresume的答案,但我不知道如何应用它.任何帮助表示赞赏.

final Dialog dialog = new Dialog(ThesisI.this);
        dialog.setContentView(R.layout.budget_dialog);


        final EditText et = (EditText) dialog.findViewById(R.id.textComments);
        final Button enter = (Button) dialog.findViewById(R.id.buttonEnter);
        final Button cancel = (Button) dialog.findViewById(R.id.buttonCancel);

        enter.setOnClickListener(new View.OnClickListener() {
      @Override
   public void onClick(View v) {

      }
        });
        /**cancel */
        cancel.setOnClickListener(new View.OnClickListener() {
      @Override
   public void onClick(View v) {
   }
        });       
        dialog.show(); 

        et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                  dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

但是,我注意到如果我将焦点更改为按钮,则再次聚焦到编辑文本.此事件有效,使用下面的代码.

et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard

4
推荐指数
1
解决办法
6499
查看次数