关于android中DatePicker程序的查询
在android中,为什么我不能使用此程序更改当前日期,即单击按钮后没有出现对话框,此程序是否有任何错误,请详细解释。感谢您的时间和考虑。这是错误的方法签名:关于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;
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);
}