AlertDialog提示框的使用

AlertDialog 用于弹出提示框,本身并没有构造函,不可以通过构造函数来初始化,首先需要通过AlertDialog.Builder来创建一个Buider,然后有两种方法来完成一个AlertDialog:一种方法是使用Builder对象中的方法定义AlertDialog的属性,然后再使用show()方法来创建并显示AlertDialog提示框;另一种方法是先使用create方法获得AlertDialog对象,然后使用AlertDialog对象的方法定义AlertDialog属性,最后使用show()方法显示AlertDialog提示框。

      AlertDialog.builder构造函数有两种:

1.AlertDialog.builder(Content content);

2.AlertDialog.builder(Content content,int theme)

    AlertDialog的主要方法及用途介绍如下。

1.void dismiss():将对话框从屏幕中移除

2.void setButton(int whichButton,CharSequece text, DialogInterface.OnClickListener):设置对话框的按钮

3.void setView(View view ):将视图控件显示在对话框中

4.void setMessage(CharSequence message):设置对话框的显示内容

5.setTitle(CharSequence title):为对话框设置标题

6.void setIcon(Drawable icon)和void seticon(int resId):为对话框设置图标

7.AlertDialog.Builder setMultiChoiceItems(items, checkedItems, listener):在对话框中显示多选框

8.AlertDialog.Builder setSingleChoiceItems(CharSequence[] items,int checkedItem,DialogInterface.OnclickListener):在对话框中显示单选框

9.AlertDialog.Builder setItems(CharSequence[]items,Dialoginterface.OnClickListener listener):在对话框中显示列表


下面是利用AlertDialog创建的7种不同风格的对话框,希望对初学android的朋友起到一定的帮助作用:

(1)布局文件main.xml如下


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/textvie1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Textview"/>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="两个按钮"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="三个按钮"/>
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示视图"/>
    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="多选列表"/>
    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="单选列表"/>
    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="列表数据"/>
    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="自定义视图"/>
</LinearLayout>




(2)程序代码如下

package com.example.alertdialog;
import com.example.alertdialog.R.layout;


import android.R.anim;
import android.R.raw;
import android.app.Activity;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.os.Build;


public class AlertDialogDemo extends Activity {
private AlertDialog dialog;
private AlertDialog.Builder builder;
private TextView tView;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tView=(TextView)this.findViewById(R.id.textvie1);
Button button1=(Button)this.findViewById(R.id.button1);
Button button2=(Button)this.findViewById(R.id.button2);
Button button3=(Button)this.findViewById(R.id.button3);
Button button4=(Button)this.findViewById(R.id.button4);
Button button5=(Button)this.findViewById(R.id.button5);
Button button6=(Button)this.findViewById(R.id.button6);
Button button7=(Button)this.findViewById(R.id.button7);
View.OnClickListener listener=new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
dialog1();
break;
case R.id.button2:
dialog2();
break;
case R.id.button3:
dialog3();
break;
case R.id.button4:
dialog4();
break;
case R.id.button5:
dialog5();
break;
case R.id.button6:
dialog6();
break;
case R.id.button7:
dialog7();
break;


}
}
};
button1.setOnClickListener(listener);
button2.setOnClickListener(listener);
button3.setOnClickListener(listener);
button4.setOnClickListener(listener);
button5.setOnClickListener(listener);
button6.setOnClickListener(listener);
button7.setOnClickListener(listener);
}
public void dialog1(){
dialog=new AlertDialog.Builder(this).create();
dialog.setTitle("提示");
dialog.setMessage("确定退出吗?");
dialog.setIcon(android.R.drawable.ic_dialog_alert);
//创建监听器
DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if (which==DialogInterface.BUTTON_POSITIVE) {//按下确定
dialog.dismiss();
AlertDialogDemo.this.finish();
} else if(which==DialogInterface.BUTTON_NEGATIVE){//按下取消
dialog.dismiss();


}
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", listener);
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", listener);
dialog.show();
}
public void dialog2(){
dialog=new AlertDialog.Builder(this).create();
dialog.setTitle("调查");
dialog.setMessage("你平时忙吗?");
dialog.setIcon(android.R.drawable.ic_dialog_info);//设置对话框的图标为ic_dialog_alert
//创建按键监听器
DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String str="";
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
str="平时很忙";
break;
case DialogInterface.BUTTON_NEUTRAL:
str="平时一般";
break;
case DialogInterface.BUTTON_NEGATIVE:
str="平时轻松";
break;
}
tView.setText(str);
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "忙碌", listener);
dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "一般", listener);
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "不忙", listener);
dialog.show();
}
public void dialog3(){
dialog=new AlertDialog.Builder(this).create();
dialog.setTitle("请输入");
dialog.setMessage("你平时忙吗?");
dialog.setIcon(android.R.drawable.ic_dialog_info);
final EditText tEdit=new EditText(this);
dialog.setView(tEdit);
//创建按键监听器
DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
tView.setText("输入的是:"+tEdit.getText().toString());//将输入的内容转化为字符串
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", listener);
dialog.show();
}
public void dialog4(){
final String item[]=new String[]{"北京","上海","广州"};
final boolean bSelect[]=new boolean[item.length];
//创建按键监听器
DialogInterface.OnMultiChoiceClickListener mListener=new DialogInterface.OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// 用一个数组记录下选择的所有选项
bSelect[which]=isChecked;
}
};
builder=new AlertDialog.Builder(this);
builder.setMultiChoiceItems(item, null, mListener);
dialog=builder.create();
dialog.setTitle("复选框");
DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String str="你选择了:";
for (int i = 0; i < bSelect.length; i++) {
if( bSelect[i]){
str=str+"\n"+item[i];
}
}
tView.setText(str);
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);
dialog.show();
}
public void dialog5(){
final String item[]=new String[]{"北京","上海","广州"};
final boolean bSelect[]=new boolean[item.length];
//创建按键监听器
DialogInterface.OnClickListener sListener=new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// 用一个数组记录下选择的所有选项
bSelect[which]=true;
}
};
builder=new AlertDialog.Builder(this);
builder.setSingleChoiceItems(item, -1, sListener);//在对话框中显示单选框,checkedItem=-1表示没有被选中的
dialog=builder.create();
dialog.setTitle("单选框");
DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String str="你选择了:";
for (int i = 0; i < bSelect.length; i++) {
if( bSelect[i]){
str=str+"\n"+item[i];
}
}
tView.setText(str);
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);
dialog.show();
}

public void dialog6(){
final String item[]=new String[]{"北京","上海","广州"};
final boolean bSelect[]=new boolean[item.length];
//创建按键监听器
DialogInterface.OnClickListener sListener=new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// 用一个数组记录下选择的所有选项
String str="你选择了:"+item[which];
tView.setText(str);
}
};
builder=new AlertDialog.Builder(this);
builder.setItems(item,sListener);
dialog=builder.create();
dialog.setTitle("列表框");
DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE,"取消", listener);
dialog.show();
}

public void dialog7(){
LayoutInflater inflater=getLayoutInflater();
View Layout=inflater.inflate(R.layout.dialog, null);
final EditText tEdit=(EditText)latout.findViewById(R.id.editText1);
dialog=new AlertDialog.Builder(this).create();
dialog.setTitle("自定义布局");
dialog.setView(Layout);
DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
tView.setText("输入的是:"+tEdit.getText().toString());
}
};
dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);
dialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", listener);
dialog.show();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下Android仿IOS自定义AlertDialog提示框的实现方法。 首先,我们需要在Android项目中创建一个自定义布局文件,用于显示弹的内容。可以使用LinearLayout或RelativeLayout等布局容器来组织弹的内容,例如: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="标题" android:textSize="18sp" /> <TextView android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="内容" android:textSize="14sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:id="@+id/confirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" /> <Button android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消" /> </LinearLayout> </LinearLayout> ``` 接下来,我们需要创建一个自定义AlertDialog类,用于显示弹和处理按钮点击事件。在这个类中,我们需要实现onCreateDialog方法来加载自定义布局文件,并设置弹的标题、内容和按钮监听器等。例如: ```java public class IOSAlertDialog extends DialogFragment { private String title; private String message; private DialogInterface.OnClickListener confirmListener; private DialogInterface.OnClickListener cancelListener; public IOSAlertDialog(String title, String message, DialogInterface.OnClickListener confirmListener, DialogInterface.OnClickListener cancelListener) { this.title = title; this.message = message; this.confirmListener = confirmListener; this.cancelListener = cancelListener; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater inflater = LayoutInflater.from(getActivity()); View view = inflater.inflate(R.layout.dialog_ios_alert, null); TextView titleView = view.findViewById(R.id.title); TextView messageView = view.findViewById(R.id.message); Button confirmButton = view.findViewById(R.id.confirm); Button cancelButton = view.findViewById(R.id.cancel); titleView.setText(title); messageView.setText(message); confirmButton.setOnClickListener(confirmListener); cancelButton.setOnClickListener(cancelListener); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setView(view); return builder.create(); } } ``` 最后,在我们的Activity中,我们可以通过创建一个实例对象,并调用show方法来显示弹。例如: ```java IOSAlertDialog dialog = new IOSAlertDialog( "提示", "确定要删除吗?", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 确定按钮点击事件 } }, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 取消按钮点击事件 } }); dialog.show(getSupportFragmentManager(), "IOSAlertDialog"); ``` 这样,我们就可以实现一个Android仿IOS自定义AlertDialog提示框了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值