AlertDialogのカスタム方法
突然の技術備忘。
オリジナルレイアウト(XML)を使わないカスタム方法について。
見た目をいじるならAlertDialogFragmentかなと思ってたけど、
XML定義しなくても標準出力で結構できるじゃん!と思ったのでメモ。
あと、Markdownも触り始めたのでその練習も兼ねてますー。
続きを読む
1. 基本形
// ダイアログ生成処理 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("タイトル"); builder.setMessage("メッセージ"); // 処理を実装する場合はリスナーをセット builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // クリック時の処理 } }); builder.setNegativeButton("NG", null); builder.setNeutralButton("NEUTRAL", null); builder.show(); // 表示
2. タイトル・メッセージのカスタム
- タイトルカスタム
// カスタムしたい内容 TextView title = new TextView(getApplicationContext()); title.setText("カスタムタイトル"); title.setTextSize(30); //テキストサイズ title.setPadding(0,30,0,30); // 余白 title.setTextColor(Color.BLUE); //テキストカラー title.setGravity(Gravity.CENTER_HORIZONTAL); // 中央配置 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setCustomTitle(title); // カスタムタイトルをセット builder.setMessage("メッセージ"); // 中略 builder.show(); // 表示
- メッセージカスタム
// カスタムしたい内容 TextView message = new TextView(getApplicationContext()); message.setText("カスタムメッセージ"); message.setTextColor(Color.YELLOW); //テキストカラー message.setBackgroundColor(Color.GRAY); // 背景色 // ダイアログ生成処理 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("タイトル"); builder.setView(message); // カスタムメッセージをセット // 中略 builder.show(); // 表示
3. 画像を埋め込む
- タイトル
// ダイアログ生成処理 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("タイトル"); builder.setMessage("メッセージ"); builder.setIcon(R.drawable.sample) // アイコンのリソースを指定 // 中略 builder.show(); // 表示
- メッセージ
// 埋めこむ画像の設定 ImageView image = new ImageView(getApplicationContext()); image.setImageResource(R.drawable.sample_image); // ダイアログ生成処理 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("タイトル"); builder.setMessage("メッセージ"); builder.setView(image); // 画像をセット // 中略 builder.show(); // 表示