两个EditText Android的日期选择器

时间:2014-01-28 19:29:02

标签: android jquery class datepicker wifi

您好我想为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;
    }
}

 }

1 个答案:

答案 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);
        }
    }
};