热门IT资讯网

Android 对话框详解(一)

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,对话框是程序运行中的弹出窗口。例如,当用户要删除一个联系方式时,会弹出一个对话框,让用户确认是否真的要删除。Android系统提供了四种对话框:警告对话框 (AlertDialog)、进度对话框(Pr

对话框是程序运行中的弹出窗口。例如,当用户要删除一个联系方式时,会弹出一个

对话框,让用户确认是否真的要删除。

Android系统提供了四种对话框:警告对话框 (AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)和时间选择对话框(TimePickerDialog)

警告对话框(AlertDialog)

AlertDialog是一个提示窗口,要求用户作出选择。该对话框中一般会有几个选择按钮、标题信息和提示信息。

在程序中创建对话框需要如下步骤:

1、获得 AlertDialog的静态内部类 Builder 对象,由该类来创建对话框。

2、通过 Buidler对象设置对话框的标题、按钮以及按钮将要响应的事件。

3、调用Builder的createO方法创建对话框。

4、调用AlertDialog的showO方法显示对话框。

实例代码如下:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TextView mytext=(TextView)this.findViewById(R.id.text1);        final AlertDialog.Builder builder=new AlertDialog.Builder(this);//创建builder对象        Button btn1=(Button)this.findViewById(R.id.btn_main1);        btn1.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                builder.setMessage("Are you sure!")                .setPositiveButton("OK",new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface arg0, int arg1) {                        // TODO Auto-generated method stub                        mytext.setText("success");                    }                }).setNegativeButton("CANCEL",new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface arg0, int arg1) {                        // TODO Auto-generated method stub                        mytext.setText("cancel");                    }                });                AlertDialog ad=builder.create();                ad.show();            }        });    }}

效果如下,点击按键后:

另一种对话框,如下代码:

public class MainActivity extends Activity {    private static final int menu1=Menu.FIRST;    private static final int menu2=Menu.FIRST+1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TextView mytext=(TextView)this.findViewById(R.id.text1);        final AlertDialog.Builder builder=new AlertDialog.Builder(this);        final String[] message={"--------","*******","++++++++"};        Button btn1=(Button)this.findViewById(R.id.btn_main1);        btn1.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                //两种不同风格的对话框                builder.setTitle("Please choose...")                .setSingleChoiceItems(message, -1, new DialogInterface.OnClickListener() {                //.setItems(message,new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface arg0, int arg1) {                        // TODO Auto-generated method stub                        mytext.setText(message[arg1]);                    }                });                AlertDialog ad=builder.create();                ad.show();            }        });    }}

以上两种模式如下图:




0