首页 > 其他分享 >android 弹出对话框之 AlertDialog

android 弹出对话框之 AlertDialog

时间:2023-07-31 22:01:04浏览次数:39  
标签:OnClickListener 对话框 void DialogInterface AlertDialog onClick new android public


1.在测试时,如何实现一个提示

可以使用

Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); 
 //从资源文件string.xml 里面取提示信息
   Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_SHORT).show();
 这个提示会几秒钟后消失


2.可以使用AlertDialog.Builder 才产生一个提示框.

 

new AlertDialog.Builder(this)
     .setTitle("Android 提示")
     .setMessage("这是一个提示,请确定")
     .show();
 带一个确定的对话框new AlertDialog.Builder(this)
          .setMessage("这是第二个提示")
          .setPositiveButton("确定",
                          new DialogInterface.OnClickListener(){
                                  public void onClick(DialogInterface dialoginterface, int i){
                                      //按钮事件
                                  }
                          })
         AlertDialog.Builder 还有很多复杂的用法,有确定和取消的对话框
new AlertDialog.Builder(this)
         .setTitle("提示")
         .setMessage("确定退出?")
         .setIcon(R.drawable.quit)
         .setPositiveButton("确定", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int whichButton) {
         setResult(RESULT_OK);//确定按钮事件
         finish();
         }
         })
         .setNegativeButton("取消", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int whichButton) {
          //取消按钮事件
         }
         })
        
实例代码如下
public class AlertDialogBuilderSample extends Activity {
  View myView;
  EditText passWord, userName;@Override
  public void onCreate(Bundle icicle) {
   super.onCreate(icicle);
   setContentView(R.layout.test); LayoutInflater factory = LayoutInflater.from(this);
   myView = factory.inflate(R.layout.userinfo, null);// 获取布局文件;
   passWord = (EditText) myView.findViewById(R.id.password);
   // 获取自定义布局文件中的用户名编辑框组件
   userName = (EditText) myView.findViewById(R.id.usernameEdit);
   // 获取自定义文件中的密码编辑框组件 final Button btnQuit = (Button) findViewById(R.id.button1);
   btnQuit.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
     new AlertDialog.Builder(AlertDialogBuilderSample.this).setView(
       myView).setTitle("Question").setMessage(
       "自定义弹出框例子").setIcon(
       R.drawable.icon).setPositiveButton("Yes",
       new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,
          int whichButton) {
         setResult(RESULT_OK);
         finish();
        }
       }).setNegativeButton("No",
       new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,
          int whichButton) {
         Log.v("tag","pws"+passWord.getText());
         Log.v("tag","name"+userName.getText());
        }
       }).show();
    }
   });
   final Button btnTravels = (Button) findViewById(R.id.button2);
   btnTravels.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
     new AlertDialog.Builder(AlertDialogBuilderSample.this)
       .setTitle("I want to go to").setItems(
         R.array.items_indide_dialog,
         new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog,
            int whichcountry) {
           String[] travelcountries = getResources()
             .getStringArray(
               R.array.items_indide_dialog);
           new AlertDialog.Builder(
             AlertDialogBuilderSample.this)
             .setMessage(
               "I’m going to "
                 + travelcountries[whichcountry])
             .setNeutralButton(
               "Cancel",
               new DialogInterface.OnClickListener() {
                public void onClick(
                  DialogInterface dialog,
                  int whichButton) {
                }
               }).show();
          }
         }).show();
    }
   });
  }
 }
 userinfo.xml<?xml version="1.0" encoding="UTF-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <LinearLayout
      android:id="@+id/usernamelayout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:layout_marginTop="10dip">
   <TextView
       android:id="@+id/usernameText"
       android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_weight="3"
    android:text="用户名"/>
   <EditText
       android:id="@+id/usernameEdit"
       android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:maxLength="20"/>
  </LinearLayout>
  
  <!-- 地区 -->
  <LinearLayout
      android:id="@+id/arealayout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:layout_below="@+id/usernamelayout">
   <TextView
       android:id="@+id/passwordTitle"
       android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_weight="3"
    android:text="密码"/>
   <EditText
       android:id="@+id/password"
       android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:maxLength="20"/>
  </LinearLayout>
 </RelativeLayout>



标签:OnClickListener,对话框,void,DialogInterface,AlertDialog,onClick,new,android,public
From: https://blog.51cto.com/u_3124497/6913815

相关文章

  • android 单元测试之 JUnit
    android里面做单元测试第一,JUnit。     实用范围:     东西,比如业务逻辑,数据封装,数值计算等等。并不能测试androidapi。第二,采用Instrumentation.Android单元测试的主入口是InstrumentationTestRunner。它相当于JUnit当中TestRunner的作用。你可以将Instrumentat......
  • Android开发有必要深耕Framework吗?
    引言关于Android市场,我们也不必探究。市场下滑是众所周知的,凉是不可能凉的,毕竟智能网络时代安卓占据人们生活很大一块。而我们在开发岗位,大家都会多少接触一些framework底层技术。那么framework技术到底有多重要呢?其实掌握AndroidFramework一直是一个不光要熟练而且必须要精通的......
  • Android Fragments 详细使用
    AndroidFragments详细使用 Fragments诞生初衷  自从Android3.0中引入fragments的概念,根据词海的翻译可以译为:碎片、片段。其上的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出......
  • android隐式启动Activity的例子
    android隐式启动Activity的例子【原创】android2.2测试通过android隐匿启动Activity的例子,同样适用于Service,BroadcastReceiver<activityandroid:name=".MyActivityTwo"android:label="ThisMyActivityTwo"><!--这样进行匹配:Intentintent=newIntent(Intent.ACT......
  • Android学 App自动更新之通知栏下…
    Android学习系列(2)--App自动更新之通知栏下载见证过博客园的多次升级,你也希望你的软件通过更新发布新特性通知用户吧,是的。这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。 1.设计思路,使用VersionCode定义为版本升级参数。android为我......
  • Android中dispatchTouchEvent,&nbs…
    onInterceptTouchEvent用于改变事件的传递方向。决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这就是所谓的Intercept(拦截)。[tisaps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回。即便需要拦截......
  • Android应用如何适配不同分辨率的…
           Android应用如何适配不同分辨率的手机主要分三块考虑1)界面配置根据不同的分辨率,创建手机界面文件例子:在res下创建layout-800x480    ......
  • Android开发FAQ-ContentObserver应…
    一、需求1.产品不同界面显示数据个数.2.数据个数动态改变.3.涉及数据与本地数据库有关可采用ContentObserver技术实现二、代码实现如下:mCursorObserver=newContentObserver(mHandler){          @Override          publicvoidonChange(booleanse......
  • Android 设计模式:(二)观察者模…
    Android设计模式:(二)观察者模式——让你的对象知悉现况设计模式2012-05-2813:28 1074人阅读 评论(1) 收藏 举报*观察者模式:定义了对象之间的一对多依赖关系,当一个对象(主题对象)的状态改变时,它的所有依赖者(观察者对象)都会收到通知并自动更新。*观察......
  • Android NFC Mifare Tag 读写示例
    前面例子介绍了检测,读写NFCTAG开发的一般步骤,本例针对常用的MifareTag具体说明。MifareTag可以有1K,2K,4K,其内存分区大同小异,下图给出了1K字节容量的Tag的内存分布:数据分为16个区(Sector),每个区有4个块(Block),每个块可以存放16字节的数据,其大小为16X4X16=1024......