XMLファイルで書かれたレイアウトを、
メッセージ部分に表示してみました。
package com.alertDialogText;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
public class AlertDialogText extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//レイアウトの呼び出し
LayoutInflater factory = LayoutInflater.from(this);
final View inputView = factory.inflate(R.layout.about, null);
// ダイアログのオブジェクト(dlg) 生成
AlertDialog.Builder dlg = new AlertDialog.Builder(this);
// ダイアログにタイトルを指定
dlg.setTitle("タイトル");
// ダイアログにメッセージを指定
dlg.setMessage("ダイアログのメッセージ");
//カスタムレイアウトの表示
dlg.setView(inputView);
// ダイアログにアイコンを指定
dlg.setIcon(R.drawable.icon);
// アラートダイアログのポジティブボタンがクリックされた時に呼び出されるコールバックリスナーを登録します
dlg.setPositiveButton("ポジティブ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
// アラートダイアログのニュートラルボタンがクリックされた時に呼び出されるコールバックリスナーを登録します
dlg.setNeutralButton("ニュートラル", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
// アラートダイアログのネガティブボタンがクリックされた時に呼び出されるコールバックリスナーを登録します
dlg.setNegativeButton("ネガティブ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
// ダイアログを表示
dlg.show();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:padding="10dip"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/dlgLayout">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:textSize="18.0sp"
android:paddingBottom="5dip" android:text="XML レイアウトを読み込み" />
<CheckBox android:text="CheckBox" android:id="@+id/checkBox1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center"
android:textSize="18.0sp" android:text="メッセージ" />
<LinearLayout android:layout_width="match_parent"
android:id="@+id/linearLayout1" android:layout_height="wrap_content">
<Button android:id="@+id/button1" android:text="Button"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent"></Button>
<Button android:id="@+id/button2" android:text="Button"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent"></Button>
</LinearLayout>
</LinearLayout>
まさに同じようなカスタム・ダイアログを調べていて辿り着きました!
返信削除ただ、カスタム・ダイアログ内に作成したボタンの動作処理を、どのように記述すればよいのかまだわかりません。
こちらの例ですと、"@+id/button1"や"@+id/button2"が押された場合のリスナーは、どのように記述すればよいのでしょうか?
上の匿名様と全く同じです!
返信削除記事の続編を期待しております。
カスタムダイアログ2という記事で少し書いてます。
削除通常のボタンが押されたときの処理と一緒でいいと思います。
ボタンがされたら、やりたい処理を書いて、最後にダイアログを閉じるようにすればいいと思います。