我想顯示我的全部警報對話框。我創建了佈局,然後在OnClickListener上使用它。 (當你點擊列表中的某個元素時,它會顯示關於它的詳細信息)Android AlertDialog.Builder自定義按鈕上的OnClickListener
當AlertDialog出現時,一切正常,但我希望我自己的Dismiss按鈕有效。可悲的是,它不,我不知道如何管理這個。
這是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/DetailDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/popup_background" >
<Button
android:id="@+id/dismissAlert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/firstDivider"
android:layout_centerHorizontal="true"
android:background="@color/popup_background"
android:text="Dismiss"
android:textColor="@color/splashColor" />
<TextView
android:id="@+id/alertDetail"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:paddingTop="20dp"
android:text="Description : alert's details"
android:textColor="@color/text"
android:textSize="20dp" />
<View
android:id="@+id/firstDivider"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/alertDetail"
android:background="@color/design_alert" />
和我的代碼的一部分
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
this.messageDialog("Order " + string + " is waiting for a time estimate", OrderAlertsPage.this);
}
public void messageDialog(String message, final Context activity) {
//On instancie notre layout en tant que View
LayoutInflater factory = LayoutInflater.from(activity);
final View alertDialogView = factory.inflate(R.layout.alert_detail_dialog, null);
//Création de l'AlertDialog
final AlertDialog.Builder adb = new AlertDialog.Builder(activity);
adb.setView(alertDialogView);
TextView text = (TextView) alertDialogView.findViewById(R.id.alertDetail);
text.setMovementMethod(ScrollingMovementMethod.getInstance());
text.setText(message);
text.setGravity(Gravity.CENTER);
Button dismiss = (Button) alertDialogView.findViewById(R.id.dismissAlert);
dismiss.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
((DialogInterface) adb).dismiss(); // I can't do it..
}
});
adb.show();
}
});
感謝您的幫助
您指定的想法不明確 – Giridharan