android - 从一项 Activity 移动时如何以编程方式打开键盘

标签 android android-softkeyboard

当我从第一个 Activity 转到第二个 Activity 时,我试图打开键盘。 主要 Activity 中有两个按钮 1) 如果点击“NotShowKeyboard”按钮,它将打开第二个没有键盘的 java Activity 2) 如果单击“ShowKeyboard”按钮,则它将打开带有键盘的 second.java Activity 和带有焦点的 EitdText 但问题是我不知道该怎么做。我放了一些示例顶部显示键盘,但在“ShowKeyboard”按钮上单击键盘打开并立即消失。

主要.java:

    NotShowKeyboard.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
            }

            if (event.getAction() == MotionEvent.ACTION_UP) {
                bundle.putBoolean("show", false);
                Intent start = new Intent(Main.this, Start.class);
                start.putExtras(bundle);
                startActivity(start);
            }

            return false;
        }
    });

    ShowKeyboard.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
            }

            if (event.getAction() == MotionEvent.ACTION_UP) {
                bundle.putBoolean("show", true);
                Intent start = new Intent(Main.this, Start.class);
                start.putExtras(bundle);
                startActivity(start);
            }

            return false;
        }
    });

第二个.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    setContentView(R.layout.start);
    i = getIntent();
    extras = i.getExtras();
    search = (EditText) findViewById(R.id.start_edit);
    search.addTextChangedListener(myTextWatcher);
    if((extras.getBoolean("show"))==true) {
    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
    //getting all stuff like buttons imageViews etc.. 
}

当 NotShowButton Clicked 然后这应该打开:

enter image description here

当 ShowButton 单击时,这应该打开:

enter image description here

最佳答案

隐藏键盘:

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

用于显示键盘:

InputMethodManager imm = (InputMethodManager)   getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

关于android - 从一项 Activity 移动时如何以编程方式打开键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620729/

相关文章:

android - 使用 NDK 在 C/C++ 中将 YUV 解码为 RGB

java - ListView 中的行逐行膨胀

android - 在 SearchView 小部件中输入一些文本时,软键盘显示 "Go"按钮而不是 "Search"按钮

android - 如何制作删除键 - 删除自定义 Android 键盘中所有选定的编辑文本

Android Pay - 完整的电子钱包确认结果代码 1 和错误代码 10

android - 在 Android 应用程序中从 Google 电子表格检索数据

android - 使用 InputMethodManager 手动显示软键盘不会调整窗口

android - 检测软键盘隐藏状态

android - 软键盘隐藏部分布局?

android - 如果我点击导航 Controller 中的菜单,如何在两个 fragment 目的地之间传递数据?