android – 如何在不使用DatePickerDialog的情况下使用OnDateChangedListener,OnDateSetListener?

前端之家收集整理的这篇文章主要介绍了android – 如何在不使用DatePickerDialog的情况下使用OnDateChangedListener,OnDateSetListener?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够在用户开始更改时检测到datepicker上的更改.但是,我不想使用datrpickerdialog.有没有人知道为什么在更改datepicker上的日期时onDateSet(DatePicker arg0,int arg1,int arg2,int arg3)不会触发?

我对此表示高度赞赏.干杯

这是我的代码的简化版本:

  1. public class AddItem extends Activity implements OnDateChangedListener,OnDateSetListener{
  2.  
  3. DatePicker start ;
  4.  
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.entryelements);
  8. start = (DatePicker) findViewById(R.id.start);
  9.  
  10. @Override
  11. public void onDateChanged(DatePicker view,int year,int monthOfYear,int dayOfMonth) {
  12.  
  13. // TODO Auto-generated method stub
  14. Toast.makeText(getApplicationContext()," thiv view"+year,Toast.LENGTH_LONG).show();
  15. Log.v("indatechange","ok");
  16.  
  17. }
  18.  
  19. @Override
  20. public void onDateSet(DatePicker arg0,int arg3) {
  21. // TODO Auto-generated method stub
  22. Toast.makeText(getApplicationContext()," thiv view"+arg0,"ok");
  23. }

}

解决方法

您需要告诉DatePicker有关OnDateChangedListener的信息.与常规小部件不同,DatePicker没有setOnDateChangedListener()……但它确实有 init().使用init()设置默认日期并一起声明监听器:
  1. public void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.entryelements);
  4.  
  5. // Set the date to now
  6. Calendar calendar = Calendar.getInstance();
  7. start = (DatePicker) findViewById(R.id.start);
  8. start.init(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),this);
  9. }

猜你在找的Android相关文章