package com.example.test05_component;
import java.util.Calendar; import java.util.Date;
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.Menu; import android.view.MenuItem; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; import android.widget.Toast;
public class DialogActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog);
EditText nameET=(EditText) findViewById(R.id.et_dialog_name);
EditText pwdET=(EditText) findViewById(R.id.et_dialog_pwd); }
//显示一般AlertDialog /** * setTitle("删除数据")设置标题 * setMessage("你确定要删除数据吗?")设置提示的具体信息 * @param v */
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()
{ //设置负按钮,一般是取消的操作
@Override public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogActivity.this, "取消删除数据", Toast.LENGTH_SHORT).show(); } }) .show();//显示对话框 }
/** * 设置单选列表(参数1列表内容项,2当前选中项3.监听器)
* @param v */ //显示单选列表
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();//显示对话框 } /** * setView(view)自定义布局 * @param v */
//显示自定义AlertDialog public void showCd(View v){
//动态加载布局文件,得到的对应的view对象 View view = View.inflate(this, R.layout.dialog_view, null);
//问题1.view的真实类型是?布局文件跟标签的类型,包含了子view对象 //问题2.如何得到一个独立view的子view //findViewById'
final EditText nameET=(EditText) findViewById(R.id.et_dialog_name);
final EditText pwdET=(EditText) 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 Ursename = nameET.getText().toString().trim();
String password = pwdET.getText().toString().trim();
//提示 Toast.makeText(DialogActivity.this, Ursename+":"+password, Toast.LENGTH_SHORT).show(); } }) .show(); }
//显示圆形进度ProgressDialog public void showPd(View v) throws InterruptedException{//回调方法,都在主线程1 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) {
// TODO Auto-generated catch block e.printStackTrace(); } }
//移除dialog dialog.dismiss();//方法在分线程执行,但内部使用handler实现主线程移除dialog
//不能在分线程里面直接更新UI runOnUiThread(new Runnable() {
@Override public void run() {//在主线程执行 // TODO Auto-generated method stub
//显示土司 Toast.makeText(DialogActivity.this, "加载完成", Toast.LENGTH_SHORT).show(); } }); }; }.start(); }
//显示水平进度ProgressDialog public void showBd(View v){ //1 final ProgressDialog pd = new ProgressDialog(this);
//2. pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //3.显示 pd.show(); //4.启动线程加载数据,并显示进度 new Thread(new Runnable() {
@Override public void run() {//分线程执行的代码 int count = 20; //设置最大进度 pd.setMax(count); // 耗时的操作 for (int i = 0; i<20;i++) {
try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }
pd.setProgress(pd.getProgress()+1); }
//移除dialog pd.dismiss(); } }).start(); }
//显示datePickerDialog public void showEd(View v){
//创建日历对象 Calendar clendar = Calendar.getInstance();
// int year = clendar.get(Calendar.YEAR);//年
int month = clendar.get(Calendar.MONTH);//月
int day = clendar.get(Calendar.DAY_OF_MONTH);
//日 Log.e("TAG", year + "-" + month + "-" + day);
//创建日期对话框(参数.1上下文2.点击完成按钮之后的操作,3.年4,月.5日)
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override public void onDateSet(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub Log.e("TAG", year + "-" + month + "-" + day); } }, year, month, day).show(); }
public void showTd(View v){
//创建时间对象 Calendar clendar = Calendar.getInstance();
// int hour = clendar.get(Calendar.HOUR_OF_DAY);//小时 int min = clendar.get(Calendar.MINUTE);//分钟 Log.e("TAG", hour + ":" + min );
//创建时间对话框(参数上下文,2.点击完成按钮之后的操作3.小时4,.分钟5.是否)
new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {
@Override public void onTimeSet(TimePicker view, int hour, int min) {
// TODO Auto-generated method stub Log.e("TAG", hour + "::" + min ); } },hour,min,true).show(); } }