两种弹出MessageBox的方法,类似MTK中的alert

[转载]两种弹出MessageBox的方法,类似MTK中的alert

 
标签: 

杂谈

分类: 技巧
OPhone/Android的学习(3)— 再熟悉几个常用的Widget


write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie


讨论新闻组及文件


一、     综述
其 实相对来说,学习一个UI库(其实Android的API最重要的就是这一部分,其他的可以用原有的JAVA标准库)最最主要的是了解其大致框架,并不一 定要了解了每一个控件/Widget的用法,因为所有的控件/Widget都是在同样的框架下展开的,了解了一种两种,其他的需要用到的时候看看文档,基 本也就知道怎么用了,可以等到实际开发的时候再去学习。整体的框架大概需要了解哪些呢?包括整体程序的执行流程,控件/Widget的创建,销毁流程,消 息/事件 的响应及处理方式等,知道了这些,其他的都可以算是枝叶末节。


前面几节Android的学习虽然非常基础,但是都是围绕着整体框架的,其实一般来说一个Hello Wolrd就已经说明了一个程序的一半,这里,再通过几个Widget来熟悉一下上述流程。解释就不多说了,具体的东西参考文档。








二、     Message:
刚开始我一直在找Android弹出类似Windows MessageBox的对话框的办法,后来找到两种:


example1:


package com.JTianLing;





import android.app.Activity;


import android.content.Context;


import android.os.Bundle;


import android.view.View;


import android.view.View.OnClickListener;


import android.widget.Button;


import android.widget.LinearLayout;


import android.widget.Toast;





public class DevXMLUI  extends Activity {


       


        @Override


        public void onCreate(Bundle savedInstanceState) {


                super.onCreate(savedInstanceState);


                LinearLayout layout =  new LinearLayout( this);


               


                Button button =  new Button( this);


                button.setText("I'm So great Button");


                button.setOnClickListener( new OnClickListener(){


                     @Override


                      public void onClick(View v) {


                        Context context = getApplicationContext();


                        CharSequence text = "Hello toast!";


                        int duration = Toast.LENGTH_SHORT;





                        Toast toast = Toast.makeText(context, text, duration);


                        toast.show();


                     }


                });


                layout.addView(button);


                setContentView(layout);


        }


}


运行效果见插图1,点击按钮的时候弹出一个Toast,为啥叫这个,我也不明白。类似于一个Notice的效果,可以自动消隐。





另外一种比较正规,也就是通过对话框,只不过Android里面没有类似MessageBox一样使用简单的对话框,相对来说复杂一点。


Example2:


package com.JTianLing;





import android.app.Activity;


import android.app.AlertDialog;


import android.app.Dialog;


import android.content.DialogInterface;


import android.os.Bundle;


import android.view.View;


import android.view.View.OnClickListener;


import android.widget.Button;


import android.widget.LinearLayout;





public class DevXMLUI  extends Activity {


        static final int DIALOG_PAUSED_ID = 0;


        @Override  protected


        Dialog onCreateDialog ( int id)


        {


             AlertDialog.Builder builder =  new AlertDialog.Builder( this);


             builder.setMessage("Are you sure you want to exit?")


                            .setCancelable( false)


                            .setPositiveButton("Yes",  new DialogInterface.OnClickListener() {


                                    public void onClick(DialogInterface dialog,  int id) {


                                         DevXMLUI. this.finish();


                                    }


                            })


                            .setNegativeButton("No",  new DialogInterface.OnClickListener() {


                                    public void onClick(DialogInterface dialog,  int id) {


                                             dialog.cancel();


                                    }


                            });


             AlertDialog alert = builder.create();


              return alert;


        }


       


        @Override


        public void onCreate(Bundle savedInstanceState) {


                super.onCreate(savedInstanceState);


                LinearLayout layout =  new LinearLayout( this);


               


                Button button =  new Button( this);


                button.setText("I'm So great Button");


                button.setOnClickListener( new OnClickListener(){


                     @Override


                      public void onClick(View v) {


                            showDialog(DIALOG_PAUSED_ID);


                     }


                });


                layout.addView(button);


                setContentView(layout);


        }


}


还是单击那个伟大的按钮,才能弹出对话框,效果如插图2。


至 于这个复杂程序,我是比较有意见的。。上面那一大堆程序,其实在Windows这种已经是宇宙中最复杂的操作系统中实现都只需要1,2句话。。。。 唉。。。。曾经多么常用的MessageBox啊。。。我甚至看到最极端的使用情况----一次我们游戏在一个玩家的机器上就是跑补起来,甚至连日志都打 不出来,总监于是在每隔几行弹出一个MessageBox在玩家的机器上跟踪程序运行情况-_-!


暂告一段落


至 此,对于一般的Android的Widget不再进一步的深入学习,原理上基本上差不多,碰到需要的时候再去翻文档学习就好了。。。。毕竟我是来尝鲜的 -_-!用了我4,5天的下班时间熟悉了一下Android,本质上。。。我还是个靠C++开发网络游戏服务器端程序的程序员,虽然由于工作需要,又碰巧 刚开始工作的时候开发过客户端,所以经常到客户端客串编写一些与服务器交互性比较强的模块。


以后,考虑学习自己感兴趣的东西,对于我来说基本也就两部分,作为服务器端程序员,我关心网络,作为开发游戏的程序员我关心图形接口,这些以后就不放入这个系列,另开一个系列。





插图1:


[转载]两种弹出MessageBox的方法,类似MTK中的alert



插图2:


[转载]两种弹出MessageBox的方法,类似MTK中的alert



write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie








                                       

本文转载至:  http://blog.csdn.net/vagrxie/archive/2009/08/08/4426292.aspx

0

阅读 (688)   评论  (0) 收藏 (0)  转载 (1)   喜欢   打印 举报
已投稿到:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值