您好我想为Date_Dialog_IDFRM整数变量返回两个editText的日期选择器它返回日期选择器但是对于Date_Dialog_IDTO,当我点击编辑文本时它无法返回DatePicker任何人帮助我
public class CustemRpt extends Activity implements OnClickListener{
private static final int Date_Dialog_IDFRM = 2;
private static final int Date_Dialog_IDTO = 1;
EditText fdate,tdate;
Button cstok;
int currdayfrm, currmonthfrm, curryearfrm, currdayto, currmonthto, curryearto;
// current date variables
Calendar currdate; //create calendar class object
int enterdayfrm, entermonthfrm, enteryearfrm, enterdayto, entermonthto, enteryearto;
//variable of enter date
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custem_rpt);
cstok = (Button) findViewById(R.id.csokbtn);
fdate = (EditText) findViewById(R.id.cstFdate);
tdate = (EditText) findViewById(R.id.cstTodate);
fdate.setOnClickListener(this);
tdate.setOnClickListener(this);
cstok.setOnClickListener(this);
Log.i("csn", tdate.toString());
currdate = Calendar.getInstance();
currdayfrm = currdate.get(Calendar.DAY_OF_MONTH);
currmonthfrm = currdate.get(Calendar.MONTH);
curryearfrm = currdate.get(Calendar.YEAR);
currdayto = currdate.get(Calendar.DAY_OF_MONTH);
currmonthto = currdate.get(Calendar.MONTH);
curryearto = currdate.get(Calendar.YEAR);
// assining the current date
enterdayfrm = currdayfrm;
entermonthfrm = currmonthfrm;
enteryearfrm = curryearfrm;
enterdayto = currdayto;
entermonthto = currmonthto;
enteryearto = curryearto;
UpdateDisplayfrm(enteryearfrm, entermonthfrm, enterdayfrm);
UpdateDisplayTo(enteryearto, entermonthto, enterdayto);
}
private void UpdateDisplayfrm(int enteryear2, int entermonth2, int enterday2) {
// TODO Auto-generated method stub
fdate.setText(enterday2+"-"+ (entermonth2 + 1) +"-"+ enteryear2);
}
private void UpdateDisplayTo(int enteryear3, int entermonth3, int enterday3) {
// TODO Auto-generated method stub
tdate.setText(enterday3+"-"+ (entermonth3 + 1) +"-"+ enteryear3);
}
下面的方法返回日期选择器
@Override
protected Dialog onCreateDialog(int id, Bundle args) {
// TODO Auto-generated method stub
switch (id) {
case Date_Dialog_IDFRM:
Log.i("inttag1", Integer.toString(Date_Dialog_IDFRM));
return new DatePickerDialog(this, OnDateSetfrm, curryearfrm,
currmonthfrm, currdayfrm);
}
return null;
}
此处以下方法不返回日期选择器
protected Dialog onCreateDialog1(int id, Bundle args) {
// TODO Auto-generated method stub
switch (id) {
case Date_Dialog_IDTO:
Log.i("inttag2", Integer.toString(Date_Dialog_IDTO));
return new DatePickerDialog(this, OnDateSetto, curryearto,
currmonthto, currdayto);
}
return null;
}
private OnDateSetListener OnDateSetto = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg, int year , int monthofyear, int
dayofmonth) {
// TODO Auto-generated method stub
enteryearto = year;
entermonthto = monthofyear;
enterdayto = dayofmonth;
UpdateDisplayTo(enteryearto, entermonthto, enterdayto);
}
};
private OnDateSetListener OnDateSetfrm = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg, int year , int monthofyear, int
dayofmonth) {
// TODO Auto-generated method stub
enteryearfrm = year;
entermonthfrm = monthofyear;
enterdayfrm = dayofmonth;
UpdateDisplayfrm(enteryearfrm, entermonthfrm, enterdayfrm);
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.custem_rpt, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.cstFdate:
showDialog(Date_Dialog_IDFRM);
break;
case R.id.cstTodate:
showDialog(Date_Dialog_IDTO);
//Toast.makeText(getApplicationContext(), "kar kavi ", 3000).show();
break;
case R.id.csokbtn:
String fdatestr = fdate.getText().toString().trim();
String tdatestr = tdate.getText().toString().trim();
Intent csti = new Intent(CustemRpt.this, CstmrptShow.class);
csti.putExtra("Str1",fdatestr);
csti.putExtra("Str2",tdatestr);
startActivity(csti);
break;
}
}
}
答案 0 :(得分:3)
我可以使用这个来做到这一点,
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
switch(v.getId()) {
case R.id.cstFdate:
DatePickerDialog datePickerDialog = new DatePickerDialog(CreateContent.this, datePickerListener, year, month, dayOfMonth);
datePickerDialog.getDatePicker().setTag(Date_Dialog_IDFRM);
datePickerDialog.show();
break;
case R.id.cstTodate:
DatePickerDialog datePickerDialog = new DatePickerDialog(CreateContent.this, datePickerListener, year, month, dayOfMonth);
datePickerDialog.getDatePicker().setTag(Date_Dialog_IDTO);
datePickerDialog.show();
//Toast.makeText(getApplicationContext(), "kar kavi ", 3000).show();
break;
}
DatePicker侦听器
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay)
{
int tag = ((Integer)view.getTag());
if(tag == Date_Dialog_IDFRM)
{
fdate.setText(selectedDay + "/" + selectedMonth + "/" + selectedYear);
}
else if(tag == Date_Dialog_IDTO)
{
tdate.setText(selectedDay + "/" + selectedMonth + "/" + selectedYear);
}
}
};