自定义对话框七个对话框

package com.example.test05___component;


import java.util.Calendar;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
/**
 * 测试对话框
 * @author Administrator
 *
 */
public class DialogActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
}
//显示一般AlertDialog
public void showAD(View v) {
new AlertDialog.Builder(this)
.setTitle("删除")//设置标题
.setMessage("你确定要删除数据么?")//设置提示的具体信息
//设置正面按钮   一般是确定的操作
.setPositiveButton("删除", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogActivity.this, "删除数据", Toast.LENGTH_SHORT).show();
}
})
//设置负面按钮   一般是取消操作
.setNegativeButton("取消", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogActivity.this, "取消删除数据", Toast.LENGTH_SHORT).show();
}
})
.show();//显示对话框
}
//显示单选列表AlertDialog
public void showLD(View v){
final String[] items = {"红","蓝","绿","灰"};
new AlertDialog.Builder(this)
.setTitle("指定背景颜色")//设置标题
//设置单选列表(参数一列表项内容  二当前选中项 三监听器)
.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//which就是选择的下标
Toast.makeText(DialogActivity.this, items[which], Toast.LENGTH_SHORT).show();
//移除Dialog
dialog.dismiss();
}
})
.show();//显示对话框
}
//显示自定义Alertlog
public void showCD(View v){
//动态加载布局文件  得到对应的View对象
View view = View.inflate(this, R.layout.activity_dialog, null);
//1.问题. view的真实类型       布局文件根标签类型   包含了子view对象
//2.如何得到一个独立的View的子view      view.findViewById
// view.findViewById是在setContentView()加载的布局当中查找


final EditText nameET = (EditText) view.findViewById(R.id.et_dialog_name);
final EditText pwdET = (EditText) view.findViewById(R.id.et_dialog_pwd);


new AlertDialog.Builder(this)
.setView(view)//设置自定义布局
.setNegativeButton("取消", null)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {


@Override
public void onClick(DialogInterface dialog, int which) {
//读取用户名和密码
String username = nameET.getText().toString().trim();
String pwd = pwdET.getText().toString().trim();
//提示
Toast.makeText(DialogActivity.this, username + ":" + pwd + ":", Toast.LENGTH_SHORT).show();
}
})
.show();
}
//显示圆形进度ProgressDialog
public void showPD(View v){
final ProgressDialog dialog = ProgressDialog.show(this, "数据加载", "数据加载中.......");
//模拟做一个长时间的工作
//长时间的工作不能在主线程做得启动分线程完成
new Thread(){
public void run(){//分线程
for (int i = 0; i < 20; i++) {
//休息一会
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//移除Dialog
dialog.dismiss();  
//不能在分线程里面直接更新UI
runOnUiThread(new Runnable() {
@Override
public void run() {//在主线程执行
//显示Toast
Toast.makeText(DialogActivity.this, "加载完成~", Toast.LENGTH_SHORT).show();
}
});
};
}.start();
}
public void showPD2(View v){
//1.创建一个Dialog对象.
final ProgressDialog pd = new ProgressDialog(this);
//2.设置样式
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//3.显示
pd.show();
//4.启动一个分线程加载数据  并显示进度   加载完成移除Dialog
new Thread(new Runnable() {


@Override
public void run() {//分线程执行代码
int count = 20;
//设置最大进度
pd.setMax(count);
//耗时的操作
for (int i = 0; i < count; i++) {
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
pd.setProgress(pd.getProgress()+1);
}
//移除Dialog
pd.dismiss();
}
}).start();
}
//显示日期对话框DataPickerDialog
public void showDD(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);//天
Log.e("TAG", year + "-" + monthOfYear + "-" + dayOfMonth);


//创建日期对话框(参数1 上下文   2.点完成按钮之后操作  3. 年    4.  月    5.日)
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {


@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Log.e("TAG", year + "---" + monthOfYear + "---" + dayOfMonth);
}
}, year, monthOfYear, dayOfMonth).show();
}
//显示时间对话框DataPickerDialog
public void showTD(View v){
//创建日历对象
Calendar calendar = Calendar.getInstance();
//得到当前的小时 分钟
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);//小时
int minute = calendar.get(Calendar.MINUTE);//分钟
Log.e("TAG", hourOfDay + ":" + minute);


//创建日期对话框(参数1 上下文   2.点完成按钮之后操作  3. 年    4.  月    5.日)
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {


@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Log.e("TAG", hourOfDay + ":" + minute);
}
}, hourOfDay, minute,true).show();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值