第一篇:android常用dialog总结
来源:互联网 发布:日程任务软件 编辑:程序博客网 时间:2024/05/16 17:52
一.背景:
dialog是我们在项目中经常会用到的一个控件,下面就总结一下最常用的几个dialog的用法。
二.效果:5个按钮分别对应5种dialog
三.java代码
package com.test.dialog;
import com.example.studyui.R;
import com.test.app.MyApplication;
import com.test.util.log.Logging;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TimePicker;
public class MyDialog extends Activity implements OnClickListener {
private final String TAG = this.getClass().getSimpleName();
private Context mContext;
private Button alertDialog;
private Button progressDialog;
private Button datePickerDialog;
private Button timePickerDialog;
private Button customDialog;
private int year;
private int month;
private int day;
private int hour;
private int minute;
private DatePickerDialog.OnDateSetListener datepickerdialog;
private TimePickerDialog.OnTimeSetListener timepickerdialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
mContext = this;
alertDialog = (Button) findViewById(R.id.button1);
progressDialog = (Button) findViewById(R.id.button2);
datePickerDialog = (Button) findViewById(R.id.button3);
timePickerDialog = (Button) findViewById(R.id.button4);
customDialog = (Button) findViewById(R.id.button5);
alertDialog.setOnClickListener(this);
progressDialog.setOnClickListener(this);
datePickerDialog.setOnClickListener(this);
timePickerDialog.setOnClickListener(this);
customDialog.setOnClickListener(this);
datepickerdialog = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
Logging.d(TAG, "year = " + year + "monthOfYear" + monthOfYear
+ "dayOfMonth" + dayOfMonth);
// 添加SharedPreferences
MyApplication.setSettingInt("year", year);
MyApplication.setSettingInt("month", monthOfYear);
MyApplication.setSettingInt("day", dayOfMonth);
}
};
timepickerdialog = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Logging.d(TAG, "hourOfDay = " + hourOfDay + "minute" + minute);
// 将设置的年月日存入本地,便于新建时使用
MyApplication.setSettingInt("hourOfDay", hourOfDay);
MyApplication.setSettingInt("minute", minute);
}
};
}
@Override
public void finish() {
// TODO Auto-generated method stub
super.finish();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
showAlertDialog();
break;
case R.id.button2:
showProgressDialog();
break;
case R.id.button3:
showDatePickerDialog();
break;
case R.id.button4:
showTimePickerDialog();
break;
case R.id.button5:
showCustomDialog();
break;
default:
break;
}
}
public void showAlertDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("你好对话框!");
builder.setMessage("确认退出吗?");
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
//动画animation的使用方法,LayoutInflater的使用
private void showProgressDialog() {
LayoutInflater inflater = LayoutInflater.from(mContext);
View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view
LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局
// main.xml中的ImageView
ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
// 加载动画
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
mContext, R.drawable.loading_animation);
// 使用ImageView显示动画
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
tipTextView.setText("正在缓冲!");// 设置加载信息
Dialog loadingDialog = new Dialog(mContext, R.style.loading_dialog);// 创建自定义样式dialog
loadingDialog.setCancelable(true);// 不可以用“返回键”取消
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
loadingDialog.show();
}
private void showDatePickerDialog() {
year = MyApplication.getSettingInt("year", 2011);
month = MyApplication.getSettingInt("month", 11);
day = MyApplication.getSettingInt("day", 11);
new DatePickerDialog(this, datepickerdialog, year, month,
day).show();
}
private void showTimePickerDialog() {
hour = MyApplication.getSettingInt("hour", 12);
minute = MyApplication.getSettingInt("minute", 16);
new TimePickerDialog(this, timepickerdialog, hour, minute,
true).show();
}
private void showCustomDialog() {
LayoutInflater inflater = LayoutInflater.from(mContext);
View v = inflater.inflate(R.layout.dialog_custom, null);// 得到加载view
RelativeLayout layout = (RelativeLayout) v.findViewById(R.id.dialog_view);// 加载布局
Dialog loadingDialog = new Dialog(mContext);// 创建自定义样式dialog
loadingDialog.setTitle("自定义对话框");
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
loadingDialog.show();
}
}
- 第一篇:android常用dialog总结
- Android常用Dialog总结
- android总结第一篇
- Android wakelock 学习总结第一篇
- 转载Android wakelock 学习总结第一篇
- Android wakelock 学习总结第一篇
- Android BLE开发总结第一篇
- Android中的常用Dialog
- Android常用Dialog集合
- 总结之第一篇
- 学习总结第一篇
- 前端第一篇总结
- android第一篇:inputType的常用取值
- Android Dialog用法总结
- Android Dialog用法总结
- Android Dialog用法总结
- Android Dialog用法总结
- android dialog使用总结
- c++_multimap
- Manifest.xml中配置<supports-screens>的作用及参数解析
- 动态设置getDrawable参数
- 反思
- 思科GLBP
- 第一篇:android常用dialog总结
- TableLayout
- javaWeb+JasperReport报表开发简单实例
- CentOS 7下的一个有趣的命令sl
- Route53增加了期待已久的私网DNS功能
- netfilter和iptables
- SQL Server ErrorLog 错误日志(如果数据库所占空间变大)
- 解决win8下计算机右键,管理打不开
- 五边形数定理