整个应用程序的单一警报对话框

时间:2012-11-26 09:28:18

标签: android android-alertdialog

我必须在我的应用程序中显示许多错误消息和警告对话框。 我不想使用Toast,我更喜欢使用AlertDialog

如何在每个活动中创建新的警报对话框,如何创建和维护一个警报对话框并只更改其中的错误消息字符串?

无论我参加什么活动,我都必须能够访问AlertDialog个实例来展示和解散它。

我怎样才能做到这一点?请在这方面给我一些指导。

4 个答案:

答案 0 :(得分:18)

创建一个类并粘贴此函数...(可能是Utils.java)

public static void alertDialogShow(Context context, String message)
        {
            final AlertDialog alertDialog = new AlertDialog.Builder(context).create();
            alertDialog.setMessage(message);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int which) 
                {
                    alertDialog.dismiss();
              } 
            }); 
            alertDialog.show();
        }

并通过写作来调用..

Utils.alertDialogShow(YourActivity.this,"Your Error Message")

答案 1 :(得分:4)

您总是可以使用alertdialog调用作为方法编写Activity的基类,然后对于任何活动类而不是使用extends Activity,使用扩展MyBaseActivity,然后通过传递字符串在需要时调用方法想要输出。

答案 2 :(得分:0)

我在辅助类中做了类似的事情

 public static void AlertBox(final Activity activity, final String title, final String message)
 {
     AlertDialog.Builder alertbox = new AlertDialog.Builder(activity);
     alertbox.setTitle(title);
     alertbox.setCancelable(false);
     alertbox.setMessage(message);
     alertbox.setNeutralButton("OK", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
         activity.finish();
         }
 });

     alertbox.show();
 }

答案 3 :(得分:0)

试试这个:

/**
 * Class for showing validation message
 */

package com.prj.utility;

import com.prj.R;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.prj.utility.System;

public class ValidationPopup {

    Context mContext = null;

    public ValidationPopup(Context mContext) {
        // TODO Auto-generated constructor stub
        this.mContext = mContext;
    }

    /**
     * 
     * @param strTitle - title of dialog
     * @param strMessage - message to be shown in dialog
     * @param value - edit text object
     */
    public void showValidationDialog(String strTitle, String strMessage,
            final EditText value) {
        final AlertDialog dlgValidationPopUp = new AlertDialog.Builder(mContext)
                .create();

        final LayoutInflater lyInflaterForDlgTitle = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LinearLayout lLayoutCustTitle = (LinearLayout) lyInflaterForDlgTitle
                .inflate(R.layout.custom_title, null);

        TextView tvTitle = (TextView) lLayoutCustTitle
                .findViewById(R.id.tvTitle);
        tvTitle.setText(strTitle);
        dlgValidationPopUp.setCustomTitle(lLayoutCustTitle);
        if (strMessage == null || strMessage.trim().equalsIgnoreCase("")) {

            //If there isn't any message in database for validation of the field, then DEFAULT_MESSAGE will be used
            strMessage = Config.DEFAULT_MESSAGE;
        }

        dlgValidationPopUp.setMessage(strMessage);
        dlgValidationPopUp.setCancelable(true);
        dlgValidationPopUp.setButton("OK",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        dlgValidationPopUp.dismiss();

                        //Edittext will be given focus if the field is edit text and it is not null
                        if (value != null)
                            value.requestFocus();
                    }
                });
        dlgValidationPopUp.show();

    }

}

您可以在应用程序的任何位置创建此类的对象,

ValidationPopup vPopup = new ValidationPopup(mContext);

根据您的需要调用方法showValidationDialog

vPopup.showValidationDialog("Alert Msg","This is message content", objectOfEditText);//You can pass null as third arg if its not for edittext.