博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 33 对话框控件
阅读量:5887 次
发布时间:2019-06-19

本文共 4653 字,大约阅读时间需要 15 分钟。

对话框控件:最多3个按钮。

mainActivity.java

package com.sxt.day05_09;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        setListener();    }    private void setListener() {        setStandardDialogClickListener();        setItemsDialogClickListener();        setCustomDialogClickListener();    }    //自定义对话框    private void setCustomDialogClickListener() {        findViewById(R.id.btnCustomDialog).setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                //将custom_dialog.xml解析为一个View类型的java对象                View layout = View.inflate(MainActivity.this, R.layout.custom_dialog, null);                final EditText etAddrss=(EditText) layout.findViewById(R.id.etAddress);                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);//Builder是内部类                builder.setTitle("输入地址的对话框")//setTitle()返回builder对象(builder对象的地址),所以可以继续用点调用其他方法,                    .setView(layout)//添加自定义布局,替换掉setMessage()                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialog, int which) {                            String address=etAddrss.getText().toString();//内部类调用外部的方法的变量要是final类型                            Log.i("main",address);                        }                    });                AlertDialog dialog = builder.create();//create最终创建对话框                dialog.show();//显示出来            }        });    }    //列表类型的对话框    private void setItemsDialogClickListener() {        findViewById(R.id.btnItemsDialog).setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                //真正创建对话框不是AlertDialog,而是这个类的内部类Builder,                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);                builder.setItems(new String[]{"增加数据","删除数据","修改数据"}, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {
//dialog是当前操作的AlertDialog对象, switch (which) { case 0: Toast.makeText(MainActivity.this, "执行增加数据的操作", 3000).show(); break; case 1: Toast.makeText(MainActivity.this, "执行删除数据的操作", 3000).show(); break; case 2: Toast.makeText(MainActivity.this, "执行修改数据的操作", 3000).show(); break; } } }); AlertDialog dialog = builder.create(); dialog.show(); } }); } //标准对话框 private void setStandardDialogClickListener() { findViewById(R.id.btnStandardDialog).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建对话框的Builder对象,Builder是AlertDialog的内部类 AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("退出考试窗口") .setMessage("退出考试吗?") .setPositiveButton("确定", new DialogInterface.OnClickListener() {
//setPositiveButton创建肯定的按钮,按钮文本是"确定",点击按钮的监听器是DialogInterface.OnClickListener //OnClickListener是DialogInterface的内部接口, @Override public void onClick(DialogInterface dialog, int which) { Log.i("main","退出考试"); } }).setNegativeButton("放弃", new DialogInterface.OnClickListener() {
setNegativeButton创建否定的按钮,按钮的文本和监听器 //如果不添加监听器,则仅仅关闭对话框没有动作。 @Override public void onClick(DialogInterface dialog, int which) { Log.i("main","继续考试"); } }); AlertDialog dialog = builder.create();//create最终创建对话框 dialog.show();//显示出来 } }); }}

main.xml

custom_dialog.xml

 

转载地址:http://tdgix.baihongyu.com/

你可能感兴趣的文章
ibatis.net:第一天,什么是 mybatis.net ?
查看>>
人生, 不要在别扭的事上纠结
查看>>
C的面向对象编程
查看>>
日志服务器架构设计
查看>>
使用Unity开发Android的几种调试方法
查看>>
C++ 基础笔记(一)
查看>>
编译内核出错:invalid option `abi=aapcs-linux' 解决办法
查看>>
System.Func<>与System.Action<>
查看>>
奢侈品行业-新手专题-亿邦动力网
查看>>
研一,就这样过去了一大半
查看>>
html框架集 js刷新页面方法大全
查看>>
求两个数中的较大值max(a,b)。(不用if,>)
查看>>
[翻译] EnterTheMatrix
查看>>
asp.net开源CMS推荐
查看>>
2014第18周四
查看>>
awk当中使用外部变量
查看>>
我所思考的生活,致半年后的自己
查看>>
putty 中文乱码解决方法
查看>>
4.使用Jackson将Json数据转换成实体数据
查看>>
Quartz中时间表达式的设置-----corn表达式 (转)
查看>>