在edittext onclick上设置日历时获取错误

时间:2015-11-04 09:48:50

标签: java android

我正在使用按钮显示日历。在选择日期之后。该日期将显示在edittext控件上。所以我在编辑文本onclick方法上显示日历。当我点击两次时显示日历。如果我点击一次。它允许我编辑。如何单击点击日历?

我的代码是......

            billdate.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                    im.hideSoftInputFromWindow(billdate.getWindowToken(), 0);
                    showDialog(DATE_DIALOG_ID);
                }
            });

3 个答案:

答案 0 :(得分:2)

首先使用下面的xml属性

使您的editText不可编辑
android:editable="false"

因为你没有提到你的代码所以我找不到你得到的错误但我更喜欢你尝试下面的代码来获取日历,当你选择你的日期时它会在你的editText中设置。

private Calendar calendar = Calendar.getInstance();
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEE, MMM dd yyyy", Locale.getDefault());

billdate.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                im.hideSoftInputFromWindow(billdate.getWindowToken(), 0);

            new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                   calendar.set(Calendar.YEAR, year);
                   calendar.set(Calendar.MONTH, monthOfYear);
                   calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                   updateDateUI(calendar, "date");
                }
                }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); }
                });
      }

      protected void updateDateUI(Calendar calendar, String strTimeDate) {
        mEditText.setText(TIME_FORMAT.format(calendar.getTime()));
      }

答案 1 :(得分:1)

@ activesince93感谢您的想法。 我找到了解决方案,将EditText控件更改为TextView,并将EditText.Now的样式设置为正常工作。我附上了我所做的。

<TextView
style="@android:style/Widget.EditText"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

答案 2 :(得分:0)

首先,你需要在 EditText 上禁用编辑,然后按如下所示启用它:

android:focusable="false"EditText上设置android:enabled="true"

然后实施OnClickListener

但在这种情况下使用TextView会更好。