关于android中DatePicker程序的查询

关于android中DatePicker程序的查询,android,Android,在android中,为什么我不能使用此程序更改当前日期,即单击按钮后没有出现对话框,此程序是否有任何错误,请详细解释。感谢您的时间和考虑。这是错误的方法签名: package date_program.day_program; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog;

在android中,为什么我不能使用此程序更改当前日期,即单击按钮后没有出现对话框,此程序是否有任何错误,请详细解释。感谢您的时间和考虑。

这是错误的方法签名:

package date_program.day_program;

   import java.util.Calendar;
   import android.app.Activity;
   import android.app.DatePickerDialog;
   import android.app.Dialog;
   import android.os.Bundle;
   import android.view.View;
   import android.view.View.OnClickListener;
   import android.widget.Button;
   import android.widget.DatePicker;
   import android.widget.TextView;

   public class SampleActivity extends Activity {
    /** Called when the activity is first created. */

    private int year,month,day;
    private TextView tvdisplay;
        private Button btpress;
        static final int DATE_DIALOG_ID=999;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tvdisplay=(TextView)findViewById(R.id.textview1);
        btpress=(Button)findViewById(R.id.button1);
    tpress.setOnClickListener(new View.OnClickListener() {

       public void onClick(View arg0) {
       // TODO Auto-generated method stub

           showDialog(DATE_DIALOG_ID);  

           }
});
        final Calendar c=Calendar.getInstance();
            year=c.get(Calendar.YEAR);
            month=c.get(Calendar.MONTH);
            day=c.get(Calendar.DAY_OF_MONTH);
            Updatedisplay();
}

    protected Dialog OnCreateDialog(int Id)  {
    switch(Id) {    
    case DATE_DIALOG_ID:
    return new DatePickerDialog(this,datepicking,year,month,day);   
    }

     return null;
  }

      private DatePickerDialog.OnDateSetListener datepicking =new 

      DatePickerDialog.OnDateSetListener(){

            public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

        // TODO Auto-generated method stub
                    year=arg1;
                    month=arg2;
                    day=arg3;
                        Updatedisplay();}
 };

  private void Updatedisplay() {
tvdisplay.setText(new StringBuilder().append("Date-").
   append(month+1).append("/").append(day).append("/").append(year));   
 }
 } 
正确的重写方法是
protecteddialog onCreateDialog(int-id)
(注意开头的小写字母“o”…大小写很重要!)。您可以通过以下两个简单的规则来保护自己,防止将来出现此类错误:

  • 按照约定,方法名称应始终以小写字母开头。这就是整个框架的运作方式
  • 对从框架重写的所有方法使用
    @Override
    注释。在这种情况下,编译器会告诉您,
    OnCreateDialog
    是对
    OnCreateDialog
  • package date_program.day_program;
    
       import java.util.Calendar;
       import android.app.Activity;
       import android.app.DatePickerDialog;
       import android.app.Dialog;
       import android.os.Bundle;
       import android.view.View;
       import android.view.View.OnClickListener;
       import android.widget.Button;
       import android.widget.DatePicker;
       import android.widget.TextView;
    
       public class SampleActivity extends Activity {
        /** Called when the activity is first created. */
    
        private int year,month,day;
        private TextView tvdisplay;
            private Button btpress;
            static final int DATE_DIALOG_ID=999;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            tvdisplay=(TextView)findViewById(R.id.textview1);
            btpress=(Button)findViewById(R.id.button1);
        tpress.setOnClickListener(new View.OnClickListener() {
    
           public void onClick(View arg0) {
           // TODO Auto-generated method stub
    
               showDialog(DATE_DIALOG_ID);  
    
               }
    });
            final Calendar c=Calendar.getInstance();
                year=c.get(Calendar.YEAR);
                month=c.get(Calendar.MONTH);
                day=c.get(Calendar.DAY_OF_MONTH);
                Updatedisplay();
    }
    
        protected Dialog OnCreateDialog(int Id)  {
        switch(Id) {    
        case DATE_DIALOG_ID:
        return new DatePickerDialog(this,datepicking,year,month,day);   
        }
    
         return null;
      }
    
          private DatePickerDialog.OnDateSetListener datepicking =new 
    
          DatePickerDialog.OnDateSetListener(){
    
                public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
    
            // TODO Auto-generated method stub
                        year=arg1;
                        month=arg2;
                        day=arg3;
                            Updatedisplay();}
     };
    
      private void Updatedisplay() {
    tvdisplay.setText(new StringBuilder().append("Date-").
       append(month+1).append("/").append(day).append("/").append(year));   
     }
     } 
    
    protected Dialog OnCreateDialog(int Id)  {
    switch(Id) {    
    case DATE_DIALOG_ID:
    return new DatePickerDialog(this,datepicking,year,month,day);   
    }