2

最初のアクティビティから 2 番目のアクティビティに移動するときに、キーボードを開こうとしています。メイン アクティビティには 2 つのボタンがあります。1) [NotShowKeyboard] ボタンをクリックすると、キーボードを使用せずに second.java アクティビティが開きます。2) [ShowKeyboard] ボタンをクリックすると、キーボードと EitdText を使用して second.java アクティビティが開きます。フォーカスがありますが、問題は、その方法がわからないことです。私はいくつかの例を上に置きましたキーボードを表示しますが、「ShowKeyboard」ボタンをクリックしてキーボードを開くとすぐに消えます。

Main.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;
        }
    });

Second.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 がクリックされると、これが開きます。

ここに画像の説明を入力

ShowButton をクリックすると、次のように開きます。

ここに画像の説明を入力

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 に答える
0

ソフトキーボードが起動するかどうかは、デバイスによって異なる場合があります。私の Vodafone Smart II 携帯電話にはありませんでした (3.5 インチ ディスプレイ)、私の Intexo TAB814 (8 インチ ディスプレイ) にはありました。同じアプリですが、結果が異なります。また、使用しているAndroidのバージョンにも依存しているようです。(Vodafone smart II -> 2.1.3、Intenso タブレット 4.1) 別のデバイスで試す

于 2013-01-31T07:44:27.003 に答える