对话框的几种实现方式

对话框的几种实现方式

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:gravity="center"
tools:context="com.example.a1_.MainActivity">

<Button
    android:id="@+id/normal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="normal"
    android:text="提示对话框" />

<Button
    android:id="@+id/progess"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="progess"
    android:text="进度条对话框" />

<Button
    android:id="@+id/single1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="single1"
    android:text="列表对话框" />

<Button
    android:id="@+id/single2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="single2"
    android:text="单选带框对话框" />

<Button
    android:id="@+id/more"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="more"
    android:text="多选对话框" />
</LinearLayout>

核心代码

package com.example.a1_;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.SystemClock;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


}

//提示对话框
public void normal(View view) {
    //创建构建器
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setTitle("提示对话框");
    dialog.setMessage("我是对话框内容");
    //设置对话框按钮
    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您点击了确定", Toast.LENGTH_SHORT).show();

        }
    });

    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "您点击了取消", Toast.LENGTH_SHORT).show();

        }
    });

    dialog.show();
}

//进度条对话框
public void progess(View view) {
    //创建进度条对话框对象
    final ProgressDialog pd = new ProgressDialog(this);
    //设置进度条对话框内容
    pd.setTitle("我是进度条对话框");
    pd.setMessage("玩命加载中.....");
    //设置进度条样式
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setMax(100);
    //设置进度条的当前进度,需要在子线程中进行
    new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i =0;i<=100;i++){
                SystemClock.sleep(30);
                pd.setProgress(i);
            }
            //当进度条加载完毕,让进度条消失
            pd.dismiss();
        }
    }).start();
    //展示进度条
    pd.show();
}

//列表单选对话框
public void single1(View view) {
    //设置要展示的对话框内容
    final String[]data= {"java","C++","PHP","html"};
    new AlertDialog.Builder(this).setTitle("选择你喜欢的语言")
            .setItems(data, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "你选择了"+data[which], Toast.LENGTH_SHORT).show();
                }
            }).show();

}

//列表带框单选对话框
public void single2(View view) {
    //设置你要学习的语言
    final String[]data = {"java","C++","PHP","html"};
    //链式编程
    new AlertDialog.Builder(this).setTitle("选择你要学习的课程")
            .setSingleChoiceItems(data, 1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "你选择了"+data[which], Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            }).show();

}

//多选对话框
public void more(View view) {
    //准备数据
    final String[]data = {"java","C++","PHP","html"};
    //创建对话框  .setCancelable(false)设置按返回键无法让对话框消失
    new AlertDialog.Builder(this).setTitle("选择你的爱好").setCancelable(false)
            .setMultiChoiceItems(data, new boolean[]{false, true, false, true}, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if (isChecked){
                        Toast.makeText(MainActivity.this, "你选择了"+data[which], Toast.LENGTH_SHORT).show();
                    }
                }
            })
            //设置确定按钮
            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            }).show();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章