it-swarm-id.com

cara mendapatkan windowToken Activity tanpa melihat?

Sekarang, saya mencoba menyembunyikan papan tombol saat pengguna menyentuh di luar keyboard:

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

Saya ingin meletakkan logika di kelas aktivitas dasar saya, jadi jika mungkin getWindowToken tanpa Tampilan?

29
David Guo

Tentunya Anda bisa menggunakan:

getContentView().getWindowToken()

atau Anda dapat merujuk ke SO Quest

17
Hanry

Saya menghadapi masalah yang persis sama, ketika menulis OnPageChangeListener dalam suatu Kegiatan. Anda dapat menggunakan salah satu solusi ini. Antara:

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

atau:

findViewById(Android.R.id.content).getWind‌​owToken()
33
divonas

Cukup gunakan getWindow().getDecorView().getWindowToken()

3
Anees
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;
}
1
ceph3us

Anda dapat mencoba ini pada tag aktivitas file manifes Anda untuk menyembunyikan keyboard.

 Android:windowSoftInputMode="stateHidden"
0
Akash Bisariya