我创建了一个编辑文本来捕捉日期。在edittext的setOnClickListener上,我显示了日期doalog框。我在此对话框中选择日期,并在编辑文本上设置所选日期。
当我第一次点击edittext时, setOnClickListener事件没有被触发,一切正常。我需要再次单击edittext以显示对话框。
可能需要为edittext设置一些属性。 这是edittext
<EditText
android:id="@+id/edtDOB"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/dateFormat"
android:inputType="date"
android:longClickable="false"
android:maxLength="10"
android:textAlignment="textStart"
android:textColor="@color/black"
android:textColorHint="@color/colorAccent"
android:textSize="@dimen/font_size" />
这是onclicklistener事件
dob.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
java.util.Calendar today = java.util.Calendar.getInstance();
YY = today.get(java.util.Calendar.YEAR);
MM = today.get(java.util.Calendar.MONTH);
DD = today.get(java.util.Calendar.DAY_OF_MONTH);
Log.e("current DD/MM/YY", DD+"/"+MM+"/"+YY);
DatePickerDialog dialog = new DatePickerDialog(
PremiumCalculation.this,
android.R.style.Theme_Holo_Light_Dialog_MinWidth,
mDateSetListener,
YY, MM, DD);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
});
任何人都可以指导我。提前谢谢。
答案 0 :(得分:0)
首先,您必须创建一个名为DatePicked
的类或任何您想要的类,并为DataPikcerDaialog弹出窗口编写代码。
public class DatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener{
ImageButton btnDatePicker;
EditText txtDOB;
public DatePicker(View view, EditText txtDOB){
btnDatePicker = (ImageButton) view;
this.txtDOB = txtDOB;
}
public Dialog onCreateDialog(Bundle savedInstanceState){
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(),this, year, month, day);
}
@Override
public void onDateSet(android.widget.DatePicker datePicker, int year, int month, int day) {
String date = day + "/" + (month+1) + "/" + year;
txtDOB.setText(date);
}
}
您可以使用EditText或TextView。如果您使用的是EditText,请确保禁用EditText。
要在哪个活动中弹出DatePickerDialog,你必须像这样调用这个类 -
final EditText txtDOB = (EditText) findViewById(R.id.txtDOB);
txtDOB.setFocusable(false); //Disable Your EditText
txtDOB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatePicker datePicker = new DatePicker(view, txtDOB);
FragmentTransaction ft = getFragmentManager().beginTransaction();
datePicker.show(ft, "Date Picker");
}
});
这将打开DatePickerDialog并在EditText中显示所选日期。
答案 1 :(得分:0)
试试这个.. 添加这两件事..
android:clickable="true"
android:editable="false"
<EditText
android:id="@+id/Birthday"
custom:font="@string/font_avenir_book"
android:clickable="true"
android:editable="false"
`enter code here` android:hint="@string/birthday"/>
答案 2 :(得分:0)
有一个原因,它正在发生,因为当我们第一次点击editText时,光标移动并且editText变得可聚焦。试试吧
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false"
作为
<EditText
android:id="@+id/et_doc_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:hint="Document Date*"
android:inputType="text"
android:maxLength="40"
android:digits="1234567890-/"
android:paddingLeft="10dp"
android:singleLine="true"
android:textCursorDrawable="@null"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/black_color" />
答案 3 :(得分:0)
将这两个附加属性添加到edittext xml并为其实现onClick事件
android:focusableInTouchMode="false"
android:focusable="false"