1

私のアプリケーションでは、あるアクティビティから別のアクティビティに移動すると、ソフト キーボードが自動的にポップアップします。

私は設定した1つのアクティビティ(Say A)を持っています

  android:configChanges="keyboardHidden" 

このアクティビティにはキーボードが必要ないため、このアクティビティから Map と AutoComompleteTextView を含む別のアクティビティ (たとえば B) に移動すると、キーボードが最初に自動的にポップアップしてから閉じます。

アクティビティBで試したこと:マニフェストで設定しました

android:windowSoftInputMode="stateHidden|adjustResize"

作成中

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

私もこれをOnCreateに入れてみました

  try{
        View view = this.getCurrentFocus();
        if (view != null) {
            InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
        }
    }catch (Exception e)
    {
        Log.e(TAG, "onCreate: keyboard crash");
        e.printStackTrace();
    }

私はまた、(View v1)のようなアクティビティで別のビューにフォーカスを設定しようとしました

 v1.requestFoucs();

私も入れてみました

android:focusableInTouchMode="true"

アクティビティ B のすべてのコンポーネントについて。

しかし、何もうまくいきませんでした。

この問題を解決するのを手伝ってください。以下のリンクのリストに属するすべての受け入れられた ans を既に試しました。

アクティビティの開始時にオンスクリーン キーボードが自動的に開きます

アクティビティ開始時のキーボードの自動ポップアップ

アクティビティ開始時にAndroidキーボードが自動的に表示されないようにする方法

これは私の AutoCompleteTextView です

<AutoCompleteTextView
            android:id="@+id/auto_serviceArea"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:layout_weight=".5"
            android:background="@android:color/transparent"
            android:cursorVisible="false"
            android:hint="@string/serviceArea"
            android:padding="5dp"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:singleLine="true"/>

編集 1: フォーカスを移動できるように、どのビューがフォーカスされているかを確認しようとしました。デバッグ中に AutoCompleteTextView からフォーカスを削除しましたが、アクティビティの開始時にキーボードが表示されなくなりました。したがって、これはオートコンプリート フォーカスの問題ではありません。

4

4 に答える 4

1

質問のリンクに従って受け入れられたものをすべて試した場合は、開始アクティビティをデバッグしてみませんか。つまり、それぞれのアクティビティを開始する意図があることを意味します。私のアプリケーションの 1 つをデバッグしているときに、Android のソフト キーボードには、それを呼び出すアクティビティが終了した後でもダウンしないという問題があることがわかりました。数秒間画面に表示されたままになりますが、これは頻繁には発生しません。

したがって、呼び出しアクティビティもデバッグすることをお勧めします。それぞれのアクティビティを呼び出したコンポーネントに「focusable = false」を付けてみてください。

于 2016-12-20T10:13:32.657 に答える
0

ただあなたがする必要があるのは与えることです

android:windowSoftInputMode="stateHidden"

あなたのアクティビティのマニフェストファイルに。

于 2016-12-20T07:43:52.977 に答える