Android之Dialog 对话框(一)

终身学习,不断读书,以书为侣,是我们每个人不让自己的生命过早枯萎的唯一选择。为了让我们的生命之树常青,让我们今后的生活更加丰富多彩,朋友们,让我们一起来努力吧!


本讲内容:Dialog 对话框

一、Dialog介绍 
Dialog也是Android中常用的用户界面元素,他同Menu一样也不是View的子类。让我们看一下它的继承关系:

\


DatePickerDialog,ProgressDialog,TimePickerDialog这三个我们在前面的章节已经讲过了


例一:当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。

下面是MainActivity.java主界面文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class MainActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
     }
     protected void dialog(){
          // 定义对话框对象
          AlertDialog.Builder builder = new Builder(MainActivity. this );
           builder.setMessage( "确认退出吗?" );
           builder.setTitle( "提示" );
           
           builder.setPositiveButton( "确认" , new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 dialog.dismiss(); //关闭对话框
                 MainActivity. this .finish(); //退出
             }
         });
           
           builder.setNegativeButton( "取消" , new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 dialog.dismiss();
             }
         });
           builder.create().show(); 显示对话框
     }
     //在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
     @Override
     public boolean onKeyDown( int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 ) {
                dialog();
               }
         return false ;
     }
}

下面是运行结果:

\


例二:改变了对话框的图表,添加了三个按钮

下面是MainActivity.java主界面文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class MainActivity extends Activity{
     private Button b;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         b=(Button) findViewById(R.id.button);
         b.setOnClickListener( new View.OnClickListener() {
             @Override
             public void onClick(View arg0) {
                 Dialog();
             }
         });
     }
     private void Dialog() {
         Dialog dialog = new AlertDialog.Builder( this )
         .setIcon(android.R.drawable.btn_star).setTitle( "喜好调查" )
         .setMessage( "你喜欢她吗?" )
         .setPositiveButton( "很喜欢" , new OnClickListener() {
             @Override
             public void onClick(DialogInterface arg0, int arg1) {
                 Toast.makeText(MainActivity. this , "我很喜欢她。" ,Toast.LENGTH_LONG).show();
             }
         }).setNegativeButton( "不喜欢" , new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 Toast.makeText(MainActivity. this , "我不喜欢她。" ,Toast.LENGTH_LONG).show();
             }
         }).setNeutralButton( "一般" , new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 Toast.makeText(MainActivity. this , "谈不上喜欢不喜欢。" ,Toast.LENGTH_LONG).show();
             }
         }).create();
         dialog.show();
     }
}

下面是运行结果:



本讲就到这里,Take your time and enjoy it

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值