2

当我从第一个活动转到第二个活动时,我正在尝试打开键盘。主活动中有两个按钮 1)如果单击“NotShowKeyboard”按钮,它将在没有键盘的情况下打开 second.java 活动 2)如果单击“ShowKeyboard”按钮,那么它将使用键盘和 EitdText 打开 second.java 活动专注但问题是我不知道该怎么做。我放了一些示例顶部显示键盘,但在“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 然后这应该打开:

在此处输入图像描述

当 ShowButton Clicked 然后这应该打开:

在此处输入图像描述

4

3 回答 3

12

隐藏键盘:

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);
于 2013-01-31T08:00:03.980 回答
5

你试过这个吗?

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

尝试将此代码放入onResume()

于 2013-01-31T08:02:09.663 回答
0

有时它取决于设备,软键盘是否出现。在我的 Vodafone Smart II 手机上,在我的 Intexo TAB814(8" 显示屏)上没有出现它(3,5" 显示屏),它在那里。相同的应用程序,但不同的结果。它也似乎取决于您使用的 android 版本。(Vodafone smart II -> 2.1.3, Intenso tablet 4.1) 在另一台设备上尝试

于 2013-01-31T07:44:27.003 回答