对话框 Dialog

什么是对话框

对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对话框, 退出提示.

对话框的特点:

1, 当前界面弹出的小窗口.

2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户.

常用对话框:

1, 普通对话框 AlertDialog

2, 进度条对话框 ProgressDialog

3, 日期对话框 DatePickerDialog

4, 时间对话框 TimePickerDialog

5, 自定义对话框

常用普通对话框 AlertDialog

1, 普通列表对话框 setItems -- onClickListener

2, 单选对话框 setSingleChoiceItems -- onClickListener

3, 多选对话框 setMultiChoiceItems --- > onMultiChoiceClickListener

4, 适配器对话框 setAdapter -- onClickListener

package com.qf.day11_dialog_01;

import java.util.Calendar;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.DatePickerDialog;

import android.app.DatePickerDialog.OnDateSetListener;

import android.app.ProgressDialog;

import android.app.TimePickerDialog;

import android.app.TimePickerDialog.OnTimeSetListener;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.os.Bundle;

import android.view.View;

import android.widget.DatePicker;

import android.widget.EditText;

import android.widget.TimePicker;

import android.widget.Toast;

public class MainActivity extends Activity {

private EditText name;

private EditText pwd;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void showAlertDialog(View v)

{

//1, 定义普通对话框的构建者

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

//2, 构建对话框

builder.setIcon(R.drawable.img_23);//设置图标

builder.setTitle("提示");//设置标题

builder.setMessage("是否确认退出?");//设置内容

//设置取消按钮

/**

* text 按钮显示的文字

* listener 按钮对应的监听器

*/

builder.setNegativeButton("取消", null);

//设置确定按钮

builder.setPositiveButton("确定", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

finish();

}

});

//3, 显示对话框

builder.show();

}

public void showProgressDialog(View v)

{

//1, 得到ProgressDialog的对象

ProgressDialog pDialog = new ProgressDialog(this);

//2, 构建对话框

pDialog.setIcon(R.drawable.img_14);

pDialog.setTitle("提示");

pDialog.setMessage("正在加载, 请稍后....");

pDialog.setCancelable(true);//是否可撤销 true 可以 false 不可以

//设置进度条对话框的样式

//ProgressDialog.STYLE_HORIZONTAL 水平的

//ProgressDialog.STYLE_SPINNER 转圈的

pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

//3, 显示对话框

pDialog.show();

//pDialog.dismiss();//对话框消失

pDialog.setProgress(50);//设置进度值, 在显示对话后,才可以设置

}

public void showDatePickerDialog(View v)

{

//获取系统的当前日期

Calendar calendar = Calendar.getInstance();

int year = calendar.get(Calendar.YEAR);

int monthOfYear = calendar.get(Calendar.MONTH);

int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);

//1, 创建带有日期选择器的对话框

/**

* context 上下文对象

* callBack onDateSetListener(日期选择器上的"确定"按钮监听器)

* year 默认的年

* monthOfYear 默认的月份

* dayOfMonth 默认的日期

*/

DatePickerDialog dPDialog = new DatePickerDialog(this,new OnDateSetListener() {

/**

* DatePicker view 日期选择器

*/

@Override

public void onDateSet(DatePicker view, int year, int monthOfYear,

int dayOfMonth) {

//选择后的日期监听

Toast.makeText(MainActivity.this, year+"-"+(monthOfYear+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();

}

}, year, monthOfYear, dayOfMonth);

//2, 显示对话框

dPDialog.show();

}

public void showTimePickerDialog(View v)

{

//1, 创建带有时间选择器的对话框

/**

* context 上下文对象

* callBack onTimeSetListener

* hourOfDay 默认的小时

* minute 默认的分钟数

* is24HourView 是否24小时制

*/

TimePickerDialog tpDialog = new TimePickerDialog(this, new OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

Toast.makeText(MainActivity.this, hourOfDay + " :" + minute, Toast.LENGTH_SHORT).show();

}

}, 15, 17, true);

//2, 显示对话框

tpDialog.show();

}

//自定义对话框(在普通对话框基础上实现)

public void showCustomDialog(View v)

{

//1, 得到普通对话框的构建者

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

//2, 构建对话框

builder.setIcon(R.drawable.img_23);

builder.setTitle("用户登陆");

//3, 为对话框设置自定义的视图

View view = getLayoutInflater().inflate(R.layout.login, null);

name = (EditText) view.findViewById(R.id.name);

pwd = (EditText) view.findViewById(R.id.pwd);

builder.setView(view);

//为对话框添加 按钮

builder.setNegativeButton("取消", null);

builder.setPositiveButton("登陆", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

String info = name.getText().toString()+", "+ pwd.getText().toString();

Toast.makeText(MainActivity.this, info, Toast.LENGTH_SHORT).show();

}

});

//4, 显示对话框

builder.show();

}

}

5a996cb44c523c994545a03b69da5119.png

package com.qf.day11_dialog_02;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.DialogInterface.OnClickListener;

import android.content.DialogInterface.OnMultiChoiceClickListener;

import android.graphics.Color;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.TextView;

public class MainActivity extends Activity {

private TextView tv;

private int position;//单选列表的 中间转接

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.tv);

}

//普通列表对话框

public void showCommon(View v)

{

//1, 得到普通对话框的构建者

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("选择颜色");

//2, 设置列表

//getResources().getStringArray(id)

builder.setItems(R.array.colors, new OnClickListener() {

/**

* DialogInterface dialog 对话框

* int which 当前选中的item 从0开始

*/

@Override

public void onClick(DialogInterface dialog, int which) {

switch (which) {

case 0:

tv.setTextColor(Color.RED);

break;

case 1:

tv.setTextColor(Color.GREEN);

break;

case 2:

tv.setTextColor(Color.BLUE);

break;

}

}

});

//3, 显示对话框

builder.show();

}

//单选列表

public void showSingle(View v)

{

//1, 得到普通对话框的构建者

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("设置文字大小");

//2, 设置单选列表

/**

* items 选项资源的ID R.array.sizes

* checkedItem 默认选中的item的下标, 如果没有默认选中, 那么设置为-1

* listener 监听器

*/

builder.setSingleChoiceItems(R.array.sizes, -1, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 把当前选中的Item的下标 赋值给全局的变量 position

position = which;

}

});

builder.setPositiveButton("确定", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO 根据全局的position 判断该执行什么样的操作

switch (position) {

case 0:

tv.setTextSize(20);

break;

case 1:

tv.setTextSize(30);

break;

case 2:

tv.setTextSize(40);

break;

}

}

});

//3, 显示对话框

builder.show();

}

//多选列表

public void showMulti(View v)

{

//1, 得到普通对话框的构建者

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("设置内容");

//2, 设置多选列表

/**

* items 资源的ID

* checkedItems 当前选中的Item

* listener 监听器

*/

//得到所有的数据

final String[] hobbys = getResources().getStringArray(R.array.hobbys);

//选中的Item

final boolean[] checkedItems = new boolean[hobbys.length];

builder.setMultiChoiceItems(R.array.hobbys, checkedItems, new OnMultiChoiceClickListener() {

/**

* DialogInterface dialog 当前对话框

* int which 当前选择的Item下标

* boolean isChecked 当前选择Item的状态

*/

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked) {

//改变boolean[] 中状态

checkedItems[which] = isChecked;

}

});

builder.setPositiveButton("确定", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

StringBuilder sBuilder = new StringBuilder();

for(int i=0;i

{

if(checkedItems[i])

{

sBuilder.append(hobbys[i]).append(" ");

}

}

tv.setText(sBuilder.toString());

}

});

//3, 显示对话框

builder.show();

}

//适配器列表

public void showAdapter(View v)

{

//1, 得到普通对话框的构建者

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("选择设置");

//2, 设置适配器

String[] data = getResources().getStringArray(R.array.settings);

ArrayAdapter adapter = new ArrayAdapter(this,

android.R.layout.simple_list_item_1,

data);

builder.setAdapter(adapter, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Intent intent = new Intent();

switch (which) {

case 0:

intent.setAction("android.settings.WIFI_SETTINGS");

break;

case 1:

intent.setAction("android.settings.SOUND_SETTINGS");

break;

case 2:

intent.setAction("android.settings.SETTINGS");

break;

}

startActivity(intent);

}

});

//3, 显示对话框

//builder.show();

builder.create().show();

}

}

507243b4784ab771cf0a3bba55743249.png

以上所述是小编给大家介绍的Android 对话框 Dialog使用实例讲解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐