web-dev-qa-db-ja.com

アクティビティの開始時にソフトキーボードを表示する

AとBの2つのアクティビティがあります。Aが起動すると、条件をチェックし、trueの場合、startActivityForResult()を呼び出してBを起動します。 Bの開始時にポップアップします。アクティビティが開始されると、EditTextにはすでにフォーカスがあり、入力できる状態になっています。

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

誰がソリューションが何であるかを知っていますか?

53
Al.

私にとって最適なのは、AndroidアクティビティBのマニフェストの追加

Android:windowSoftInputMode="stateVisible"

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

94
Leo

最も簡単なソリューション:Put

Android:windowSoftInputMode = "stateVisible" 

androidManifest.xmlのアクティビティセクション

19

EditTextのrequestFocusが表示されない場合は、おそらく次のようになります。

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

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

13
synic

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

Android:windowSoftInputMode="stateVisible|adjustPan"
11
Paul

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

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);
}
5
whlk

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

2
Chad Hedgcock

ファイル:AndroidManifest.xml

<activity Android:name=".MainActivity">

次のプロパティを追加します。

Android:windowSoftInputMode="stateVisible"

それは私のために働いた。

1
Keyur Sureliya

二つの方法があります。

方法1。 OnCreateメソッド内で次のコードを使用します

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

クリックしない限り、キーボードがポップアップするのを防ぎます。

または

方法2 xmlの「requestfocus」を使用して、TextViewなどの他のビューのフォーカスを移動できます。

<TextView
            Android:id="@+id/year_birth_day"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_weight="1"
            Android:text="1991">            
           <requestFocus />
           </TextView>

方法(回避できると思う)マニフェストで次のコードを使用する-

Android:windowSoftInputMode="stateVisible"
1
abc

これをsetContentViewの後に貼り付けます

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
0
Ashwini