简单datpicker为Android [英] simple datpicker for the android

查看:155
本文介绍了简单datpicker为Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图发起DataPicker上单击编辑文字


什么是我想要做 ::

  1. 有拖编辑文本
  2. 我想从两个编辑文本推出日期选择器

我做了什么 ::

  1. 我试图做到这一点

  2. 我已经采取了的EditText作为样本之一

问题 ::

  1. 日期选取器不启动,当我点击的EditText

  2. 在logcat中没有错误

MainActivity.java

 公共类MainActivity扩展FragmentActivity {

    美国东部时间的EditText;
    的EditText edt2;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        美国东部时间=(EditText上)findViewById(R.id.editText1);
        edt2 =(EditText上)findViewById(R.id.editText2);
        SimpleDateFormat的SDF =新的SimpleDateFormat(DD / MM / YYYY);
        日历C = Calendar.getInstance();
        日历C1 = Calendar.getInstance();
        c1.setTime(新日期());
        c.setTime(新日期()); //现在用今天的日期。
        c.add(Calendar.DATE,7); //添加7天
        串TODATE = sdf.format(c.getTime());
        串数fromdate = sdf.format(c1.getTime());
        edt2.setText(数fromdate);
        edt.setText(TODATE);
    }



     公共无效selectDate(查看视图){
            DialogFragment newFragment =新SelectDateFragment();
            newFragment.show(getSupportFragmentManager(),的DatePicker);
        }
        公共无效populateSetDate(INT年,月整型,INT日){
            edt2 =(EditText上)findViewById(R.id.editText1);
            edt2.setText(日+/+月+/+年);
        }
        公共类SelectDateFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener {
            @覆盖
            公共对话onCreateDialog(包savedInstanceState){
                最后台历挂历= Calendar.getInstance();
                INT YY = calendar.get(Calendar.YEAR);
                INT毫米= calendar.get(Calendar.MONTH);
                INT DD = calendar.get(Calendar.DAY_OF_MONTH);
                返回新DatePickerDialog(getActivity(),这,YY,MM,DD);
            }

            公共无效onDateSet(DatePicker的观点,诠释YY,诠释毫米,诠释DD){
                populateSetDate(YY,DD,MM们+ 1);
            }
        }
}
 

解决方案

的DatePicker不会推出,因为你还没有设置 onClickListener 的EditText 在code。

设置点击监听器,如下为你的EditText。

  @覆盖
保护无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);
    美国东部时间=(EditText上)findViewById(R.id.editText1);
    edt2 =(EditText上)findViewById(R.id.editText2);
    SimpleDateFormat的SDF =新的SimpleDateFormat(DD / MM / YYYY);
    日历C = Calendar.getInstance();
    日历C1 = Calendar.getInstance();
    c1.setTime(新日期());
    c.setTime(新日期()); //现在用今天的日期。
    c.add(Calendar.DATE,7); //添加7天
    串TODATE = sdf.format(c.getTime());
    串数fromdate = sdf.format(c1.getTime());
    edt2.setText(数fromdate);
    edt.setText(TODATE);

    edt2.setOnClickListener(新OnClickListener(){
       @覆盖
      公共无效的onClick(视图v){
       selectDate(五);
        }
   });

  edt.setOnClickListener(新OnClickListener(){
       @覆盖
      公共无效的onClick(视图v){
       selectDate(五); //通过查看参数。
        }
   });
}
 

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

解决方案

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

这篇关于简单datpicker为Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆