AlertDialog对话框的基本使用
//功能:单击一个按钮控件弹出一个对话框
//该对话框使用很平凡 -- 比较灵活想在哪里用就在哪里创建
1、在res/layout里布局一个按钮
代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/alertdialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onclickButton"
android:text="alertdialog对话框" />
</LinearLayout>
--------------------------
2、在MainActivity 类里
代码:
AlertDialog.Builder builder = new AlertDialog.Builder(this);//创建一个对话框
builder.setTitle("提示");//设置对话框的标题
builder.setIcon(R.drawable.ic_launcher);//设置对话框标题旁边的图片
builder.setMessage("确定退出?");//设置对话框的内容
//setNegativeButton方法 -- 设置AlertDialog对话框的取消按钮
//第一个参数 -- AlertDialog对话框取消按钮要设置的文字
//第二个参数 -- 点击该取消按钮的事件监听 -- 什么也不做 -- 可以设置为null
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
}
});
//setPositiveButton方法 -- 设置AlertDialog对话框的确定按钮
//第一个参数 -- AlertDialog对话框确定按钮要设置的文字
//第二个参数 -- 点击该确定按钮的事件监听 -- 什么也不做 -- 可以设置为null
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
}
});
//setNeutralButton方法 -- 设置AlertDialog对话框的中立按钮
//第一个参数 -- AlertDialog对话框中立按钮要设置的文字
//第二个参数 -- 点击该中立按钮的事件监听 -- 什么也不做 -- 可以设置为null
builder.setNeutralButton("中立", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "中立", Toast.LENGTH_SHORT).show();
}
});
//AlertDialog对话框的显示
builder.show();
=========================================================
ProgressDialog对话框的创建和简单使用
代码
ProgressDialog progressdialog = new ProgressDialog(this);//创建一个ProgressDialog对话框
progressdialog.setTitle("提示");//设置ProgressDialog对话框的标题
progressdialog.setIcon(R.drawable.ic_launcher);//设置ProgressDialog对话框标题旁边的图片
progressdialog.setMessage("progressdialog...");//设置ProgressDialog对话框的内容
progressdialog.show();//显示ProgressDialog对话框
progressdialog.dismiss();//隐藏ProgressDialog对话框
========================================================
DatePickerDialog(年,月,日)时间对话框的创建和基本使用
Calendar calendar = Calendar.getInstance();//获取当前时间
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
//创建一个时间对话框
//第一个参数 -- 上下文
//第二个参数 -- 时间对话框选择时间的监听
//第三个参数 -- 当前时间的 -- 年
//第四个参数 -- 当前时间的 -- 月
//第五个参数 -- 当前时间的 -- 日
DatePickerDialog datepincker = new DatePickerDialog(this, new OnDateSetListener() {
//第一个参数 -- DatePickerDialog时间对话框的视图
//第二个参数 -- 当前选择的 -- 年
//第三个参数 -- 当前选择的 -- 月
//第四个参数 -- 当前选择的 -- 日
//注意:月份要加1 因为月份从0算的
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String dateString = year + "年" + monthOfYear + "月" + dayOfMonth + "日";
Toast.makeText(MainActivity.this, dateString, Toast.LENGTH_SHORT).show();
}
}, year, month, day);
//显示DatePickerDialog时间对话框
datepincker.show();
效果图示例:
===================================================================
TimePickerDialog时间对话框(小时,分钟)简单创建和基本使用
//获取当前时间
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
INT minute = calendar.get(Calendar.MINUTE);
//创建一个TimePickerDialog时间对话框
//第一个参数 -- 上下文
//第二个参数 -- 时间对话框的事件监听
//第三个参数 -- 当前的 -- 小时
//第四个参数 -- 当前的 -- 分钟
//第四个参数 -- 是否是24小时制
TimePickerDialog timepicker = new TimePickerDialog(this, new OnTimeSetListener() {
//第一个参数 -- TimePickerDialog时间对话框视图
//第二个参数 -- 选择的 -- 小时
//第三个参数 -- 选择的 -- 分钟
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String date_time = hourOfDay + ":" + minute ;
Toast.makeText(MainActivity.this, date_time, Toast.LENGTH_SHORT).show();
}
}, hour, minute, true);
//显示TimePickerDialog时间对话框
timepicker.show();
效果图示例
================================================================
自定义对话框的简单创建和基本使用
//注意:自定义对话框是在AlertDialog基础上实现的 用得挺多的
//功能:登录对话框
1、先在res/layout里布局登录的界面 login_activity.xml布局文件
代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名" />
<EditText
android:id="@+id/edit_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:inputType="textPassword" />
</LinearLayout>
----------------
2、创建自定义对话框
代码
AlertDialog.Builder builder = new AlertDialog.Builder(this);//this -- 上下文
builder.setTitle("登录对话框");//自定义对话框的标题
builder.setIcon(R.drawable.ic_launcher);//设置自定义对话框标题旁边的图片
//使用填充器找到登录对话框的布局文件名
View login = LayoutInflater.from(this).inflate(R.layout.login_activity,null);
//找到登录布局文件名后在找该布局里面的控件名
final EditText edit_name = (EditText) login.findViewById(R.id.edit_name);
final EditText edit_password = (EditText) login.findViewById(R.id.edit_password
builder.setView(login);//设置自定义对话框的视图 -- 把找到的自定义登录布局放到里面就可以
//自已的对话框的确定按钮 时间监听
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = edit_name.getText().toString();
String password = edit_password.getText().toString();
setTitle(name + "::" + password);
}
});
//取消按钮
builder.setNegativeButton("取消", null);
//显示自定义对话框
builder.show();
效果图示例