繁体   English   中英

按下按钮直到用户点击EditText框,如何隐藏Android小键盘?

[英]How do I hide Android keypad after a button is pressed until user taps an EditText box?

在应用程序启动时显示软键盘很容易。 但是,当单击显示ButtonbtnShow )时,我想隐藏键盘,直到用户点击EditText框。 这是因为键盘隐藏了大部分输出。 尽管要求用户隐藏键盘不是很多,但我希望它是自动发生的。

但是我无法做到这一点。 如图所示,在12个“组合”中只有3个可见。

在此处输入图片说明

这是我的主要Activity Java代码的相关部分。

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.TextView;
    import java.util.ArrayList;

    public class MyActivity extends Activity {

       @Override protected void
                                  onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_my);

    // The next line shows the keypad on app creation:

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


          final Button  bs = (Button)findViewById(R.id.btnShow);
                        bs.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View v) {

    // The next hides the keypad, but something else makes it re-appear immediately:

// *************** EDIT ******************
                    if(comb.size() > 0) {
                      b.setText(ss);
                      b.requestFocus();
                    }
// *************** END OF EDIT ***********
      getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
        }
     });  
    }
  }

*编辑*添加上面的3行之后,我已经取得了一些进步,但是可以看到Alpha键盘并且对话框滚动到屏幕之外:

在此处输入图片说明

我隐藏了数字键盘; 如何摆脱Alpha键盘以防止滚动?

这是黄色输出的xml:

<TextView android:id="@+id/txvCombos"
    android:text="@string/default_combo"

    android:editable="true"
    android:enabled="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:selectAllOnFocus="true"

    android:inputType="textMultiLine"
    android:windowSoftInputMode="stateHidden"
    android:layout_width="100dp"
    android:layout_height="300dp"
    android:layout_row="5"
    android:layout_column="1"
    android:layout_gravity="left|top"
    android:gravity="center_horizontal|top"
    android:textColor="#fffbff32"
    android:textSize="20dp"
    android:lines="13"
    android:layout_columnSpan="3"/>

(原始问题:点击“显示”按钮时如何隐藏键盘,但允许在用户单击EditText框之前查看“组合”输出?)

单击按钮时可以使用此代码

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);

初始化OnClickListener下的view变量

public View view; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM