Как я могу создать диалог ввода текста в Android? - PullRequest
4 голосов
/ 14 марта 2012

Каков наилучший способ создать диалоговое окно ввода модального текста для Android?

Я хочу заблокировать, пока пользователь не введет текст и не нажмет кнопку ОК, а затем извлечет текст из диалога, какмодальный диалог в awt.

Спасибо!

Ответы [ 3 ]

7 голосов
/ 14 марта 2012

Попробуйте это:

final Dialog commentDialog = new Dialog(this);
commentDialog.setContentView(R.layout.reply);
Button okBtn = (Button) commentDialog.findViewById(R.id.ok);
okBtn.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                    //do anything you want here before close the dialog
                                    commentDialog.dismiss();
                            }
 });
Button cancelBtn = (Button) commentDialog.findViewById(R.id.cancel);
cancelBtn.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {

                                    commentDialog.dismiss();
                            }
 });

reply.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent"       android:background="#ffffff">

    <EditText android:layout_width="fill_parent"
            android:layout_gravity="center" android:layout_height="wrap_content"
            android:hint="@string/your_comment" android:id="@+id/body" android:textColor="#000000"
            android:lines="3" />
    <LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <Button android:id="@+id/ok" android:layout_height="wrap_content"
                    android:layout_width="wrap_content" android:text="@string/send"  android:layout_weight="1"
                     />
            <Button android:id="@+id/cancel" android:layout_height="wrap_content"
                    android:layout_width="wrap_content"  android:layout_weight="1"
                    android:text="@android:string/cancel" />
    </LinearLayout>
</LinearLayout>
2 голосов
/ 14 марта 2012

Вы можете создать собственный диалог с макетом XML. И поскольку вы хотите заблокировать его, пока пользователь не введет текст и не нажмет кнопку ОК, вы можете сделать его setCancelable(false).

Проверьте ссылки поиска Google: Диалог с EditText

1 голос
/ 14 марта 2012

Я думаю, вы имеете в виду модальное диалоговое окно.

Я бы сказал, посмотрите на AlertDialog.Builder Для начала, более новый способ сделать это - использовать DialogFragment , который дает вам больше контроля над жизненным циклом диалога.

Ключевой метод, который вы ищете, это dialog.setCancelable(false);

...