zoukankan      html  css  js  c++  java
  • Android 中日期对话框的应用

     import java.util.Calendar; 
     import android.widget.DatePicker;  
     import android.app.DatePickerDialog;  
     
         //日期对话框的标记 常量
         private static final int DATE_DIALOG_ID = 1;  
         private static final int SHOW_DATAPICK = 0;
         //日期变量
         private int mYear;  
         private int mMonth;  
         private int mDay;
         //当前操作的日期控件的标记
         private String strDate_Tag=""; 
    
         //购买日期
         private EditText m_txtPurchaseDate = null;  
         private Button m_butPurchaseDate = null;  
         //安装日期
         private EditText m_txtInstallationDate = null;  
         private Button m_butInstallationDate = null;
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //购买日期
            m_txtPurchaseDate = (EditText) findViewById(R.id.txtPurchaseDate);  
            m_butPurchaseDate = (Button) findViewById(R.id.butPurchaseDate);  
            //安装日期
            m_txtInstallationDate= (EditText) findViewById(R.id.txtInstallationDate);  
            m_butInstallationDate = (Button) findViewById(R.id.butInstallationDate);
     
            initDate();//初始化 日期
        }
    
        //初始化 日期
        private void initDate(){
                    
            final Calendar c = Calendar.getInstance();  
            mYear = c.get(Calendar.YEAR);  
            mMonth = c.get(Calendar.MONTH);  
            mDay = c.get(Calendar.DAY_OF_MONTH);  
            //setDateTime();//设置日期 
            strDate_Tag="PurchaseDate";//购买日期
            setDateTime();
            strDate_Tag="InstallationDate";//安装日期
            setDateTime();        
        }
        //设置日期   为文本框 赋值
        private void setDateTime() {  
            if(strDate_Tag=="PurchaseDate"){//购买日期
                m_txtPurchaseDate.setText(new StringBuilder().append(mYear +"-").append(  
                        (mMonth + 1) < 10 ? "0" + (mMonth + 1)+"-" : (mMonth + 1)+"-").append( 
                        (mDay < 10) ? "0" + mDay : mDay));
            }else if(strDate_Tag=="InstallationDate"){//安装日期
                m_txtInstallationDate.setText(new StringBuilder().append(mYear +"-").append(  
                        (mMonth + 1) < 10 ? "0" + (mMonth + 1)+"-" : (mMonth + 1)+"-").append( 
                        (mDay < 10) ? "0" + mDay : mDay));
            }
        }  
        
        //日期控件的事件 
        private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {  
           public void onDateSet(DatePicker view, int year, int monthOfYear,  
                  int dayOfMonth) {  
               mYear = year;  
               mMonth = monthOfYear;  
               mDay = dayOfMonth;  
               setDateTime();  //设置日期   为文本框 赋值
           }  
        }; 
    
        //购买日期Button的事件处理 
        class butPurchaseDateOnClickListener implements  
               android.view.View.OnClickListener {  
           public void onClick(View v) {  
               strDate_Tag="PurchaseDate";//当前点击的日期为 购买日期
               
               String[] arrPurchaseDate =m_txtPurchaseDate.getText().toString().split("-");
               mYear =  Integer.parseInt(arrPurchaseDate[0]);  
               mMonth = Integer.parseInt(arrPurchaseDate[1]);
               mDay = Integer.parseInt(arrPurchaseDate[2]);
    
               Message msg = new Message();  
               if (m_butPurchaseDate.equals((Button) v)) {  
                  msg.what = MainActivity.SHOW_DATAPICK;  
               }  
               MainActivity.this.saleHandler.sendMessage(msg);  
           }  
        }
        //购买日期Button的事件处理 
        class butInstallationDateOnClickListener implements  
               android.view.View.OnClickListener {  
           public void onClick(View v) {  
               strDate_Tag="InstallationDate";//当前点击的日期为 安装日期
               
               String[] arrInstallationDate =m_txtInstallationDate.getText().toString().split("-");
               mYear =  Integer.parseInt(arrInstallationDate[0]);  
               mMonth = Integer.parseInt(arrInstallationDate[1]);
               mDay = Integer.parseInt(arrInstallationDate[2]);
               
               Message msg = new Message();  
               if (m_butInstallationDate.equals((Button) v)) {  
                  msg.what = MainActivity.SHOW_DATAPICK;  
               }  
               MainActivity.this.saleHandler.sendMessage(msg);  
           }  
        }
    
        //创建对话框 日期
        protected Dialog onCreateDialog(int id) {  
           switch (id) {  
           case DATE_DIALOG_ID:  //日期
               return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,  mDay);   
           }  
           return null;  
        }  
    
        protected void onPrepareDialog(int id, Dialog dialog) {  
           switch (id) {  
           case DATE_DIALOG_ID:  
               ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);  
               break;  
           }  
        }  
      
        //处理日期控件的Handler 
        Handler saleHandler = new Handler() {  
           @Override  
           public void handleMessage(Message msg) {  
               switch (msg.what) {  
               case MainActivity.SHOW_DATAPICK:  
                  showDialog(DATE_DIALOG_ID);  
                  break;  
               }  
           }  
        };  
  • 相关阅读:
    iOS- static extern const
    App 性能分析
    迭代器和生成器
    软件工程之个人软件开发----起步
    myeclipse调式与属性显示
    hdu 6188
    uva10780 质因子分解
    云服务器端口号的几个操作
    Redis错误 : MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
    ubuntu系统安装宝塔面板Linux版
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/3583681.html
Copyright © 2011-2022 走看看