0

ログインページで、ユーザーは誕生日を入力する必要があります。EditText (誕生日) を作成したいのですが、DatePicker が表示されます。

私はこれが好きです:

public class Main extends Activity {

    EditText inputBirthDay;
    DatePicker dpResult;

    TextView tvDisplayDate;
    int year;
    int month;
    int day;

    static final int DATE_DIALOG_ID = 999;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register_activity);     

        inputBirthDay = (EditText) findViewById(R.id.registerBirthDay);  
            inputBirthDay.setFocusableInTouchMode(false);       
        addListenerOnButton();      
    }   

    public void addListenerOnButton() {
        inputBirthDay.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                final Calendar c = Calendar.getInstance();
                year = c.get(Calendar.YEAR);
                month = c.get(Calendar.MONTH);
                day = c.get(Calendar.DAY_OF_MONTH);
                showDialog(DATE_DIALOG_ID);
                                    inputBirthDay.requestFocus();   
            }
        });     
    }

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

        // when dialog box is closed, below method will be called.
        public void onDateSet(DatePicker view, int selectedYear,
            int selectedMonth, int selectedDay) {
        year = selectedYear;
        month = selectedMonth;
        day = selectedDay;

     inputBirthDay.setText(new StringBuilder().append(day)
                .append("-").append(month + 1).append("-                 ").append(year)
                .append(" "));
        }
    };

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this, datePickerListener, year, month,
                day);
        }
        return null;
    }
}

しかし、私には問題があります:

1/ EditText をクリックすると、最初にキーボードが表示され、次にもう一度クリックすると、DatePicker が表示されます。キーボードを非表示にするにはどうすればよいですか?

ご協力ありがとうございました

4

1 に答える 1

1

1番の場合、これで十分かもしれません:

inputBirthDay.setInputType(InputType.TYPE_NULL);

No.2 については、次のように考えています。

inputBirthDay.setText(String.valueOf(year)+String.valueOf(month)+String.valueOf(day));

「onDateSet」関数に入れます

于 2013-09-27T14:45:57.573 に答える