simple datpicker for the android

流过昼夜 提交于 2019-12-12 01:43:38

问题


I am trying to launch DataPicker on click of the edit text


What am i trying to do::

  1. there are tow edit text
  2. I want to launch datepicker from both edit text

What i have done ::

  1. I have tried to do this

  2. I have taken one of the edittext as sample

Problem::

  1. date picker is not launching when i click on edittext

  2. no errors in logcat

MainActivity.java

public class MainActivity extends FragmentActivity {

    EditText edt;
    EditText edt2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edt=(EditText)findViewById(R.id.editText1);
        edt2=(EditText)findViewById(R.id.editText2);   
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        Calendar c = Calendar.getInstance();
        Calendar c1=Calendar.getInstance();
        c1.setTime(new Date());
        c.setTime(new Date()); // Now use today date.
        c.add(Calendar.DATE, 7); // Adding 7 days
        String ToDate = sdf.format(c.getTime());
        String FromDate = sdf.format(c1.getTime());
        edt2.setText(FromDate);
        edt.setText(ToDate);
    }



     public void selectDate(View view) {
            DialogFragment newFragment = new SelectDateFragment();
            newFragment.show(getSupportFragmentManager(), "DatePicker");
        }
        public void populateSetDate(int year, int month, int day) {
            edt2 = (EditText)findViewById(R.id.editText1);
            edt2.setText(day+"/"+month+"/"+year);
        }
        public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
            @Override
            public Dialog onCreateDialog(Bundle savedInstanceState) {
                final Calendar calendar = Calendar.getInstance();
                int yy = calendar.get(Calendar.YEAR);
                int mm = calendar.get(Calendar.MONTH);
                int dd = calendar.get(Calendar.DAY_OF_MONTH);
                return new DatePickerDialog(getActivity(), this, yy, mm, dd);
            }

            public void onDateSet(DatePicker view, int yy, int mm, int dd) {
                populateSetDate(yy, dd, mm+1);
            }
        }   
}

回答1:


DatePicker is not launching because you have not set the onClickListener for your EditText in your code.

Set the click listener as below for both your EditText.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    edt=(EditText)findViewById(R.id.editText1);
    edt2=(EditText)findViewById(R.id.editText2);   
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Calendar c = Calendar.getInstance();
    Calendar c1=Calendar.getInstance();
    c1.setTime(new Date());
    c.setTime(new Date()); // Now use today date.
    c.add(Calendar.DATE, 7); // Adding 7 days
    String ToDate = sdf.format(c.getTime());
    String FromDate = sdf.format(c1.getTime());
    edt2.setText(FromDate);
    edt.setText(ToDate);

    edt2.setOnClickListener(new OnClickListener() {
       @Override
      public void onClick(View v) {
       selectDate(v);
        }
   });

  edt.setOnClickListener(new OnClickListener() {
       @Override
      public void onClick(View v) {
       selectDate(v); //Pass the View as parameter. 
        }
   });
}



回答2:


You just implements Edittext onClickListner onClick() Event:

edt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
               // new DatePickerDialog(ProximityActivity.this, dateD, myCalendar
                        //.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        //myCalendar.get(Calendar.DAY_OF_MONTH)).show();

                      //Load your DiaglogFragment Over here
            }
        });



回答3:


Didn't you forget to set your onClickListener in your onCreate? Or is it handle in your xml?

edt2.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        selectDate(null);//I set null cause I don't know in the function what should the view be.
    }
});


来源:https://stackoverflow.com/questions/20782488/simple-datpicker-for-the-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!