[オリジナル]andoridはdialogオブジェクトを持たずactivityのdialogを閉じることを実現し、dialogがポップアップするかどうかを検出する
1309 ワード
dialogリファレンスがもらえませんか?メンバー変数に設定しませんか?どこかでdialogを閉じたり、現在のactivityが隠されているかどうかを検出したりしたいですか?
private static ArrayList getWindowViews() {
try {
View rootView = null;
Class wmgClass = Class.forName("android.view.WindowManagerGlobal");
Object wmgInstnace = wmgClass.getMethod("getInstance").invoke(null, (Object[]) null);
Field mViewsField = wmgClass.getDeclaredField("mViews");
mViewsField.setAccessible(true);
ArrayList o = (ArrayList) mViewsField.get(wmgInstnace);
return o;
// private final ArrayList mViews = new ArrayList();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
List windowViews = getWindowViews();
if (windowViews != null && windowViews.size() > 0 && windowViews.get(windowViews.size() - 1) != getWindow().getDecorView()) {
// BaseEditCodeActivity.super.onBackPressed();
View view = windowViews.get(windowViews.size() - 1); //parent = android.view.ViewRootImpl
// ViewRootImpl
getWindowManager().removeView(view);
}