主に画面を閉じた時に自動的にダイアログも閉じて欲しかったのですが上手くいかないので調べてみたら以外と記事なかったのでメモ書き。
@Override
protected void onStop() {
super.onStop();
ViewGroup content = (ViewGroup) findViewById(android.R.id.content);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
content.removeView(spinner);
content.addView(spinner);
}
記事にするほどでも無かったかな…。
Spinnerのソースコード見てみるとダイアログ自体は
private SpinnerPopup mPopup;
として持ってるんだけどこれ自体を触ってる場所はままあるんだけど
dialog.dismiss();
を実行してるのが
protected void onDetachedFromWindow()
なので一旦ViewGroup内から削除→再追加としてあげるとスルッとうまくいきます。
まぁこんな特殊な使い方するぐらいなら自分で作るなりカスタマイズするなりした方が良いかも。
業務的に使う時の参考にでもしてください。