[英]simple datpicker for the android
我正在嘗試單擊編輯文本以啟動DataPicker
我想做什么 ::
我做了什么 ::
我試圖做到這一點
我已將其中一個edittext作為示例
問題 ::
當我單擊edittext時,日期選擇器未啟動
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.