簡體   English   中英

適用於Android的簡單datpicker

[英]simple datpicker for the android

我正在嘗試單擊編輯文本以啟動DataPicker


我想做什么 ::

  1. 有兩個編輯文本
  2. 我想從兩個編輯文本中啟動datepicker

我做了什么 ::

  1. 我試圖做到這一點

  2. 我已將其中一個edittext作為示例

問題 ::

  1. 當我單擊edittext時,日期選擇器未啟動

  2. 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);
            }
        }   
}

您只需實現Edittext onClickListner onClick()事件:

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

您是否忘了在onCreate設置onCreate 還是在您的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.
    }
});

由於尚未在代碼中為EditText設置onClickListener ,因此DatePicker無法啟動。

為兩個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. 
        }
   });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM