Подтвердить что ты не робот

Как получить Activity windowToken без просмотра?

Теперь я пытаюсь скрыть экранную клавиатуру, когда пользователь прикасается к клавиатуре:

((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(editView.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

Я хочу поместить логику в свой базовый класс активности, так что если можно получить WindowToken без просмотра?

4b9b3361

Ответ 1

Конечно, вы можете использовать:

getContentView().getWindowToken()

или вы можете обратиться к SO Quest

Ответ 2

Я столкнулся с такой же проблемой при написании OnPageChangeListener внутри Activity. Вы можете использовать одно из этих решений. Или:

getWindow().getDecorView().getRootView().getWindowToken()   

или

findViewById(android.R.id.content).getWind‌​owToken()

Ответ 3

public static final String M_TOKEN = "mToken";

@Nullable
protected IBinder getToken(Activity activity) {
    try {
        Field mTokenField = Activity.class.getDeclaredField(M_TOKEN);
        mTokenField.setAccessible(true);
        IBinder mToken = (IBinder) mTokenField.get(activity);
        return mToken;
    } catch (NoSuchFieldException e) {
        // handle 
    } catch (IllegalAccessException e) {
       // handle
    }
    return null;
}

Ответ 4

Вы можете попробовать это в своем ярлыке активности файла манифеста, чтобы скрыть клавиатуру.

 android:windowSoftInputMode="stateHidden"

Ответ 5

Просто используйте getWindow().getDecorView().getWindowToken()