5.9UI组件

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();       }  }  

posted @ 2018-05-10 09:22  8026  阅读(162)  评论(0编辑  收藏  举报