Каков наилучший способ создать диалоговое окно ввода модального текста для Android?
Я хочу заблокировать, пока пользователь не введет текст и не нажмет кнопку ОК, а затем извлечет текст из диалога, какмодальный диалог в awt.
Спасибо!
Попробуйте это:
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>
Вы можете создать собственный диалог с макетом XML. И поскольку вы хотите заблокировать его, пока пользователь не введет текст и не нажмет кнопку ОК, вы можете сделать его setCancelable(false).
setCancelable(false)
Проверьте ссылки поиска Google: Диалог с EditText
Я думаю, вы имеете в виду модальное диалоговое окно.
Я бы сказал, посмотрите на AlertDialog.Builder Для начала, более новый способ сделать это - использовать DialogFragment , который дает вам больше контроля над жизненным циклом диалога.
Ключевой метод, который вы ищете, это dialog.setCancelable(false);
dialog.setCancelable(false);