第一篇: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();


}


}

0 0
原创粉丝点击