我已按照本教程将日期选择器集成到我的应用程序中,我已经根据我的需要定制了原始文件并设法让它工作。不幸的是,作者并没有深入探讨实际使用 DatePicker 对话框的概念。
结果,启动应用程序时会显示全屏日历,而我只是想在单击“选择日期”按钮时拉出日、月和年,我需要删除什么?
代码在这里:
public class MainActivity extends Activity implements OnClickListener,
OnCheckedChangeListener {
TabHost th;
Button changeDate;
TextView displayDate;
public static final int dDialogId = 1;
// date and time
private int mYear;
private int mMonth;
private int mDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
// Set activity to full screen!!
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
th = (TabHost) findViewById(R.id.tabhost);
th.setup();
TabSpec specs = th.newTabSpec("tag1");
// one tab
specs.setContent(R.id.tab1);
// what appears on actual tab
specs.setIndicator("Tools");
th.addTab(specs);
specs = th.newTabSpec("tag2");
// one tab
specs.setContent(R.id.tab2);
// what appears on actual tab
specs.setIndicator("Calorie Calculator");
th.addTab(specs);
specs = th.newTabSpec("tag3");
// one tab
specs.setContent(R.id.tab3);
// what appears on actual tab
specs.setIndicator("Your Stats!");
th.addTab(specs);
initializeVariables();
}
private void initializeVariables() {
mapARun = (Button) findViewById(R.id.btnMapARun);
weightConverter = (Button) findViewById(R.id.btnWeightConverter);
changeDate = (Button) findViewById(R.id.btnChangeDate);
displayDate = (TextView) findViewById(R.id.tvDisplayDate);
changeDate.setOnClickListener(this);
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
updateDisplay();
}
@Override
@Deprecated
protected void onPrepareDialog(int id, Dialog dialog) {
// TODO Auto-generated method stub
super.onPrepareDialog(id, dialog);
((DatePickerDialog) dialog).updateDate(mYear, mMonth, 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;
updateDisplay();
}
};
private void updateDisplay() {
displayDate.setText(new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("-").append(mDay).append("-")
.append(mYear));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnChangeDate:
DatePickerDialog DPD = new DatePickerDialog(this,
mDateSetListener, mYear, mMonth, mDay);
DPD.show();
break;
}
}
}
}
抱歉,如果您在代码运行时遇到语法错误,我删除了许多其他不相关的功能,
是否有另一种方法可以在调用对话框时仅显示日期选择器?