69

A と B の 2 つのアクティビティがあります。A が起動すると条件がチェックされ、真の場合はB のstartActivityForResult()起動が呼び出されます。B はテキスト入力のみを受け取るため、B の起動時にソフト キーボードが自動的にポップアップするのは理にかなっています。アクティビティが開始されると、EditText には既にフォーカスがあり、入力の準備ができています。

windowSoftInputMode="stateAlwaysVisible"問題は、マニフェストで<activity>B のタグの下に設定しても、キーボードが表示されないことです。また、値を に設定してみましたstateVisible。自動的に表示されないため、EditText をタップして表示する必要があります。

解決策が何であるか知っている人はいますか?

4

10 に答える 10

103

私にとって最も効果的なのは、AndroidマニフェストのアクティビティBの追加です

android:windowSoftInputMode="stateVisible"

それがあなたにも役立つことを願っています。

于 2011-01-24T19:22:18.403 に答える
22

最も簡単な解決策:置く

android:windowSoftInputMode = "stateVisible" 

AndroidManifest.xml の Activity セクション

于 2015-09-23T09:12:49.353 に答える
14

EditTextのrequestFocusに表示されない場合は、次のように表示されます。

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, 0);

詳細については、こちらをご覧ください。

于 2010-03-18T05:25:49.937 に答える
11

私にとっては、このソリューションのみが機能しました:そのアクティビティのマニフェストに追加:

android:windowSoftInputMode="stateVisible|adjustPan"
于 2012-06-21T09:45:20.687 に答える
6

少し遅れてキーボードを表示してみてください。これに似たもの:

public void onResume() {
    super.onResume();

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourTextBox, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);
}
于 2011-03-18T22:01:50.453 に答える
1

エミュレーターを使用している場合、ソフト キーボードを表示するには、ハード キーボードをオフにする必要があります。

于 2011-02-03T10:19:42.530 に答える