4

我有一个TextInputEditText缠着TextInputLayout,如谷歌建议做:https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html
OnClickListener在TextInoutEditText缠TextInputLayout

但是,我TextInputEditText有一个OnClickListener设置就可以了,所以当它被窃听用户可以弹出一个DatePickerDialog。
我的问题是,事实上,第一次点击除了提示标签移动到TextInputEditText上方之外没有任何反应。 第二次点击时,显示DatePickerDialog。

我怎样才能让DatePickerDialog在第一次点击时显示?
在TextInutLayout而不是TextInputEditText上设置onClickListener不起作用。 任何人有想法?

+0

你可以在这里放一些你的代码 – AJay

+0

什么代码?它只是一个基本的XML,包含一个** TextInputLayout **包装一个** TextInputEditText **,在Java一侧** ** TextInputEditTex ** t上设置一个简单的** OnClickListener **。 –

回答

5

仅在第二次点击时打开日历是因为您正在使用edittext。在第一次点击时,您的编辑文本将变得焦点。那么第二次点击只会调用onClickListener。

如果您不希望手动编辑日期设置(使用键盘),那么为什么不使用TextView来显示选定的日期?首先点击

展览:

如果您需要使用的EditText,并在第一次点击加载压光机,然后尝试一个onFocusChangeListner设置为EDITTEXT而不是onClickListner

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if(hasFocus) { 
      // Show your calender here 
     } else { 
      // Hide your calender here 
     } 
    } 
}); 
+0

感谢您的回复,我会在明天重新开始工作时将其实施并在您的回复正确的情况下将其标记。 要回答你的问题:**为什么不使用TextView来显示选定的日期?**那么你知道,那些来自UX/Design Team的猴子... –

+0

@AndyStrife Ok然后'EditTetext'上的'setOnFocusChangeListener'即单击即可显示日历。 – Ironman