Проблема в создании диалога, который содержит как TimePicker, так и DatePicker? - PullRequest
1 голос
/ 09 августа 2011

Я создаю пользовательский диалог, в котором я хочу использовать как DatePicker, так и TimePicker. Хотя я могу использовать TimePicker так, как хочу, но для DatePicker мне не хватает идей.Помогите мне, пожалуйста.Мой код выглядит следующим образом:

Мой файл макета XML ...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TimePicker android:id="@+id/timePicker1"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></TimePicker>
<DatePicker android:id="@+id/datePicker1"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></DatePicker>
<Button android:id="@+id/buttondatetime" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="OK" />

И мой код Java для создания настраиваемого диалогового окна -

void dialogDateTime()
{
    dialog = new Dialog(this);
    dialog.setContentView(R.layout.datetime);
    dialog.setCancelable(true);
    dialog.setTitle("This is Dialog 1");
    dialog.show();

    TimePicker time_picker = (TimePicker) dialog.findViewById(R.id.timePicker1);
    time_picker.setOnTimeChangedListener(new OnTimeChangedListener()
    {
        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minutes)
        {
            // TODO Auto-generated method stub

        }
    });

    DatePicker date_picker = (DatePicker) dialog.findViewById(R.id.datePicker1);




    Button btn_ok = (Button) dialog.findViewById(R.id.buttondatetime);
    btn_ok.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            // TODO Auto-generated method stub
            String text = "Time "+hours+":"+minute;
            tv_date_time.setText(text);
            dialog.cancel();
        }
    });

}

@ Переопределить защищенный диалог onCreateDialog (int id) {// TODO Сгенерированный автоматически метод заглушки

    switch (id) 
    {
    case DIALOG_1:
        dialogDateTime();
        break;
    case DIALOG_2:
        dialogTwo();
        break;
    default:
        break;
    }
    return super.onCreateDialog(id);
}

Я не получаю никакой метод для DatePicker, как в TimePicker, поэтому я не могу использовать DatePicker. Пожалуйста, помогите

1 Ответ

5 голосов
/ 09 августа 2011

Спасибо, что не ответили. Я нашел ответ самостоятельно .. Я изменил свой метод следующим образом

void dialogDateTime()
{
    dialog = new Dialog(this);
    dialog.setContentView(R.layout.datetime);
    dialog.setCancelable(true);
    dialog.setTitle("This is Dialog 1");
    dialog.show();

    TimePicker time_picker = (TimePicker) dialog.findViewById(R.id.timePicker1);
    time_picker.setOnTimeChangedListener(new OnTimeChangedListener()
    {
        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minutes)
        {
            // TODO Auto-generated method stub
            // Toast.makeText(CustomDialog.this,
            // "hourOfDay = "+hourOfDay+"minute = "+minute , 1000).show();
            hours = hourOfDay;
            minute = minutes;
        }
    });

    final DatePicker date_picker = (DatePicker) dialog.findViewById(R.id.datePicker1);
    Button btn = (Button) dialog.findViewById(R.id.buttondatetime);
    btn.setOnClickListener(new OnClickListener()
    {

        public void onClick(View arg0)
        {
            // TODO Auto-generated method stub

            TextView txt = (TextView) findViewById(R.id.textView1);
            txt.setText("You selected " + date_picker.getDayOfMonth() + "/" + (date_picker.getMonth() + 1) + "/"
                    + date_picker.getYear());
            txt.append("Time "+ hours + ":" +minute);

            dialog.cancel();
        }

    }

    );

}

Благодаря ссылке Элементы управления датой и временем Android

...