Android的AlertDialog的使用详解

AlertDialog对话框功能是通知用户某些信息,这些信息可以单纯只是一些文字、错误信息或者警告文字,也有可能是系统询问用户的一个问题。然后用户可以通过点击AlertDialog对话框上的按钮来响应。对话框上的按钮和文字可以通过程序来控制,一个AlertDialog对话框最多只能由3个按钮。
AlertDialog的创建有两种方法:(1)利用AlertDialog.Builder类创建         (2).利用AlertDialog类创建
下面是利用AlertDialog.Builder类创建AlertDialog的具体步骤:

AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(MainActivity.this);
//建立一个属于主程序类的AlertDialog.Builder对象
myAlertDialog.setTitle("MyAlertDialog");  
//设置对话框的标题
myAlertDialog.setMessage("这里是AlertDialog的提示信息");
//设置对话框的提示信息
myAlertDialog.setIcon(android.R.drawable.ic_dialog_info);
//设置对话框的提示图标,这里的android.R.drawable.ic_dialog_info是系统自带图标
myAlertDialog.setCancelable(false);
//设置用户无法利用返回键取消对话框
/*为对话框添加按钮*/
myAlertDialog.setPositiveButton("是",new DialogInterface.OnClickListener(){
            @Override
            public void onClick(DialogInterface dialog,int which){                  
      //可以在这里添加按下PositiveButton后要执行的代码
            }
 }
myAlertDialog.setNegativeButton("否",new DialogInterface.OnClickListener(){
           @Override
            public void OnClick(DialogInterface dailog,int which){          
  //可以在这里添加按下NegativeButton后要执行的代码
        }
}
myAlertDialog.setNeutralButton("取消",new DialogInterface(){
    @Overrider
    public void onClick(DialogInterface dialog,int which){        
//在这里添加按下NeutralBUtton后要执行的代码
    }
}
myAlertDialog.show();/ /显示对话框


下面是程序的源代码:
新建一个MainActivity.java文件,其onCreate()方法中详细代码如下:
public class MainActivity extends Activity {
 private Button myButton = null;
 private  TextView myTextView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myButton = (Button)this.findViewById(R.id.mybutton);
        myTextView = (TextView)this.findViewById(R.id.mytextview);
        myButton.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View arg0) {
    AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(MainActivity.this);
    myAlertDialog.setTitle("这是AlertDialog的标题");
    myAlertDialog.setMessage("这是AlertDialog的信息");
    myAlertDialog.setIcon(android.R.drawable.ic_dialog_alert); //设置对话框的图标
    myAlertDialog.setCancelable(false);
    myAlertDialog.setPositiveButton("是", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      myTextView.setText("你点击了PositiveButton");
     }
    });
    myAlertDialog.setNegativeButton("否", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface arg0, int arg1) {
      myTextView.setText("你点击了NegativeButton");
     }
    });
    myAlertDialog.setNeutralButton("取消", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface arg0, int arg1) {
      myTextView.setText("你点击了NeutralButton");
     }
    });
    myAlertDialog.show();
   }
  });
   }
  }  
activity_main.xml文件的代码如下:   添加一个文本试图和一个按钮即可
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android=" http://schemas.android.com/apk/res/android">
    <Button
        android:id="@+id/mybutton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="显示AlertDialog" />
    <TextView 
        android:id="@+id/mytextview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="显示AlertDialog的按钮按下信息"
    />
</LinearLayout>

下面介绍一个如何利用AlertDialog来创建对话框
利用这种方法创建一个AlertDialog与创建其他控件比如Button TextView有着截然的 不同,因为AlertDialog类把建构式定义成protected,所以我们无法直接
产生它的对象。解决的方法是用继承的方法,也就是我们必须新增加一个继承AlertDialog类的子类,然后在该类中建立一个构造方法调用AlertDialog类的构造
方法。
class MyAlertDialog extends AlertDialog{  //创建一个类进程AlertDialog
 public MyAlertDialog(Context context) {
  super(context);
 }
}
public class SubMainActivity extends Activity implements Button.OnClickListener{
 private Button myButton = null;
 private  TextView myTextView = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  myButton = (Button)this.findViewById(R.id.mybutton);
        myTextView = (TextView)this.findViewById(R.id.mytextview);
        myButton.setOnClickListener(this);
 }
 public void onClick(View view){
  MyAlertDialog myAlertDialog = new MyAlertDialog(this);
  myAlertDialog.setTitle("AlertDialog的标题");
  myAlertDialog.setMessage("AlertDialog's Information ");
  myAlertDialog.setCancelable(false);
  DialogInterface.OnClickListener positiveListener = new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    myTextView.setText("你点击了PositiveButton");
   }
  };
  DialogInterface.OnClickListener negativeListener = new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    myTextView.setText("你点击了NegativeButton");
   }
  };
  DialogInterface.OnClickListener neutralListener = new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    myTextView.setText("你点击了NeutralButton");
   }
  };
  myAlertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "YES", positiveListener);
  myAlertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "NO", negativeListener);
  myAlertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "CANCEL", neutralListener);
  myAlertDialog.show();
 }
}
这里布局文件和上一个布局文件可以共用,新建一个SubMainActivity后,到AndroidManifest.xml中把里面唯一一个
<activity>标签里面的android:name由原来的MainActivity改为SubMainActivity,则启动程序的时候不会运行MainActivity而是直接载入SubMainActivity

Android的AlertDialog的使用详解_第1张图片



Android的AlertDialog的使用详解_第2张图片




你可能感兴趣的:(AlertDialog)