モノワスレ

ブログに書いて忘れましょう

カスタムDialog作成時のメモ書き

Androidでカスタムダイアログを作成する場合

  • AlertDialog
  • Dialog

の2つがある。

前者は、DialogBuilderを使って作る。
作成時にボタン実装をたすけてくれたりする。
簡易版的位置づけ。

後者は、完全にオリジナルなダイアログを作りたい場合に利用する。
new Dialog(Context) とかやって作成する。
dialog.setContentView(id) で、外部定義のレイアウトを設定する。
このやり方は、AlertDialogでは実現できない。
(やると空のダイアログが表示される)
ボタン実装は助けてくれないので、自分でレイアウトに定義する必要がある。

    private void showLoginDialog() {
        final Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.dialog);
        
        dialog.findViewById(R.id.button)
        .setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        }
        );
        dialog.show();
    }