-1

これは私のコードですが、編集テキストを更新するのに問題はありませんが、編集テキストをもう一度クリックするまで編集テキストがすぐに更新されないという問題があります。肯定的なボタンの edittext 助けてください

    EditText edtKeyword;
    String selectedDate;
int mYear,mMonth,mDay ;

    DateFormat fmtDateAndTime = DateFormat.getDateInstance();
Calendar myCalendar = Calendar.getInstance();

DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
        int dayOfMonth) {
    myCalendar.set(Calendar.YEAR, year);
    myCalendar.set(Calendar.MONTH, monthOfYear);
    myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);

        edtKeyword = (EditText) findViewById(R.id.edtKeyword);

        edtKeyword.setClickable(true);

        edtKeyword.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new DatePickerDialog(MenuList.this, d, myCalendar
                    .get(Calendar.YEAR),                   
                     myCalendar.get(Calendar.MONTH),
         myCalendar.get(Calendar.DAY_OF_MONTH)).show();
                mYear = myCalendar.get(Calendar.YEAR);
                mMonth = myCalendar.get(Calendar.MONTH);
                mDay = myCalendar.get(Calendar.DAY_OF_MONTH);

                selectedDate= mMonth+"-"+mDay+"-"+mYear;

                edtKeyword.setText(selectedDate);               
        }
    });        

    edtKeyword.setText(fmtDateAndTime.format(myCalendar.getTime()));
4

1 に答える 1

0

このコードを試しました。それは私にとってはうまくいきます。ぜひ一度お試しください

private int pYear = 1970;
private int pMonth = 1;
private int pDay = 1;
static final int DATE_DIALOG_ID = 0;

次にonCreateで:

    edt_birth.setKeyListener(null);
    edt_birth.setOnTouchListener(new OnTouchListener() {
        @SuppressWarnings("deprecation")
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            showDialog(DATE_DIALOG_ID);
            return false;
        }
    });


@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(this, pDateSetListener, pYear, pMonth,
                pDay);
    }
    return null;
}

private DatePickerDialog.OnDateSetListener pDateSetListener = new DatePickerDialog.OnDateSetListener() {

    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        pYear = year;
        pMonth = monthOfYear;
        pDay = dayOfMonth;
        updateDisplay();
    }
};

private void updateDisplay() {
    int temp = pMonth + 1;
    edt_birth.setText(pDay + "/" + temp + "/" + pYear);
    }

これにより、編集テキストが更新されます。

于 2013-07-16T10:56:08.987 に答える