最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

android AlertDialog.Builder的使用方法

Android 太平洋学习网 浏览 评论

android AlertDialog.Builder对象适合于alert提示窗口,使用非常广泛,这里将用alert dialog案例来带大家学习一下AlertDialog的用法,顺便介绍一下Toast对象的使用。

1:首先在activity_main.xml中添加两个按钮,一个button弹出Toast信息,另外一个弹出AlertDialog对话窗口,代码如下。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.baidu.alertdemo.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="80dp"
        android:textSize="20dp"
        android:text="请不要删除我啊"
        android:id="@+id/text1"/>

    <Button
        android:text="删除文本"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="50dp"
        android:id="@+id/delBtn"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:text="Toast提示"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/delBtn"
        android:layout_alignLeft="@+id/delBtn"
        android:layout_alignStart="@+id/delBtn"
        android:layout_marginBottom="65dp"
        android:id="@+id/toastBtn" />
</RelativeLayout>

2:在MainActivity.java类中实现实现这两个button按钮的点击事件。注意:new AlertDialog.Builder (Context context)中的Context必须是此Activity中的Context,不能使用getApplicationContext()得到的context,否则会报Unable to add window -- token null is not for an application错误。

解决方法:用static修饰Context,如private static Context myContext;这样就不会在使用中被销毁了,如下。

package com.baidu.alertdemo;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button toastButton;
    private Button delButton;
    private TextView myText;
    //context对象要用static,不然会报错
    private static Context myContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toastButton = (Button)findViewById(R.id.toastBtn);
        delButton = (Button)findViewById(R.id.delBtn);
        myText = (TextView)findViewById(R.id.text1);
        //toast事件
        toastButton.setOnClickListener(new ShowToashClick());
        //del删除文本
        delButton.setOnClickListener(new DelButtonClick());
        //初始化context
        myContext = this;
    }
    //实现显示toast事件
    class ShowToashClick implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"toast弹一下",Toast.LENGTH_SHORT).show();
        }
    }
    //实现删除文本事件
    class DelButtonClick implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(myContext);
            alertDialogBuilder.setMessage("你确定要删除吗");
            alertDialogBuilder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //确认之后删除textview文本
                    myText.setText("");
                    Toast.makeText(getApplicationContext(),"删除成功",Toast.LENGTH_SHORT).show();
                }
            });
            alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(getApplicationContext(),"取消成功",Toast.LENGTH_LONG).show();
                }
            });
            //创建会话(很重要)
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
        }
    }

}

android Toast和AlertDialog的区别是toast只是提示,而AlertDialog可以在提示之后选择是确认还是取消,非常的实用,下面是运行之后的效果。

AlertDialog

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/2017/0911/212.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论