Учебники

Android — Диалог Оповещения

Диалог — это маленькое окно, которое предлагает пользователю принять решение или ввести дополнительную информацию.

Иногда в вашем приложении, если вы хотите спросить пользователя о принятии решения между «да» или «нет» в ответ на какое-либо конкретное действие, предпринятое пользователем, оставаясь в том же действии и не меняя экран, вы можете использовать Alert Dialog.

Для создания диалогового окна с предупреждением необходимо создать объект AlertDialogBuilder, который является внутренним классом AlertDialog. Его синтаксис приведен ниже

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

Теперь вам нужно установить положительную (да) или отрицательную (нет) кнопку, используя объект класса AlertDialogBuilder. Его синтаксис

alertDialogBuilder.setPositiveButton(CharSequence text, 
   DialogInterface.OnClickListener listener)
alertDialogBuilder.setNegativeButton(CharSequence text, 
   DialogInterface.OnClickListener listener)

Помимо этого, вы можете использовать другие функции, предоставляемые классом построителя, для настройки диалогового окна оповещения. Они перечислены ниже

Sr.No Тип метода и описание
1

setIcon (значок для рисования)

Этот метод устанавливает значок диалогового окна предупреждения.

2

setCancelable (логическая отмена возможна)

Этот метод устанавливает свойство, которое диалог может быть отменен или нет

3

setMessage (сообщение CharSequence)

Этот метод устанавливает сообщение, которое будет отображаться в диалоговом окне предупреждения

4

setMultiChoiceItems (CharSequence [] items, boolean [] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)

Этот метод устанавливает список элементов, которые будут отображаться в диалоговом окне в качестве содержимого. Выбранная опция будет уведомлена слушателем

5

setOnCancelListener (DialogInterface.OnCancelListener onCancelListener)

Этот метод Устанавливает обратный вызов, который будет вызван, если диалог отменен.

6

setTitle (CharSequence title)

Этот метод устанавливает заголовок, который будет отображаться в диалоге

setIcon (значок для рисования)

Этот метод устанавливает значок диалогового окна предупреждения.

setCancelable (логическая отмена возможна)

Этот метод устанавливает свойство, которое диалог может быть отменен или нет

setMessage (сообщение CharSequence)

Этот метод устанавливает сообщение, которое будет отображаться в диалоговом окне предупреждения

setMultiChoiceItems (CharSequence [] items, boolean [] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)

Этот метод устанавливает список элементов, которые будут отображаться в диалоговом окне в качестве содержимого. Выбранная опция будет уведомлена слушателем

setOnCancelListener (DialogInterface.OnCancelListener onCancelListener)

Этот метод Устанавливает обратный вызов, который будет вызван, если диалог отменен.

setTitle (CharSequence title)

Этот метод устанавливает заголовок, который будет отображаться в диалоге

После создания и настройки построителя диалогов вы создадите диалоговое окно оповещений, вызвав метод create () класса построителя. Его синтаксис

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

Это создаст диалоговое окно предупреждения и покажет его на экране.

Фрагмент диалога

Прежде чем войти в пример, нам нужно знать фрагмент диалога. Фрагмент диалога — это фрагмент, который может отображать фрагмент в диалоговом окне.

public class DialogFragment extends DialogFragment {
   @Override
   public Dialog onCreateDialog(Bundle savedInstanceState) {
      // Use the Builder class for convenient dialog construction
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      builder.setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
            toast.makeText(this,"enter a text here",Toast.LENTH_SHORT).show();
         }
      })
      .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
            finish();
         });
         // Create the AlertDialog object and return it
         return builder.create();
      }
   }
}

Диалог списка

Он используется для отображения списка элементов в диалоговом окне. Предположим, что пользователю необходимо выбрать список элементов или же нужно щелкнуть элемент из нескольких элементов списка. В этой ситуации мы можем использовать диалоговое окно списка.

public Dialog onCreateDialog(Bundle savedInstanceState) {
   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
   builder.setTitle(Pick a Color)
   
   .setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
         // The 'which' argument contains the index position
         // of the selected item
      }
   });
   return builder.create();
}

Диалоговое окно с одним выбором

Он используется для добавления единого списка выбора в диалоговое окно. Мы можем установить или снять флажок в соответствии с выбором пользователя.

public Dialog onCreateDialog(Bundle savedInstanceState) {
   mSelectedItems = new ArrayList();
   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
   
   builder.setTitle("This is list choice dialog box");
   .setMultiChoiceItems(R.array.toppings, null,
      new DialogInterface.OnMultiChoiceClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which, boolean isChecked) {
         
         if (isChecked) {
            // If the user checked the item, add it to the selected items
            mSelectedItems.add(which);
         }
         
         else if (mSelectedItems.contains(which)) {
            // Else, if the item is already in the array, remove it 
            mSelectedItems.remove(Integer.valueOf(which));
         }
      }
   })
   
   // Set the action buttons
   .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int id) {
         // User clicked OK, so save the mSelectedItems results somewhere
         // or return them to the component that opened the dialog
         ...
      }
   })
   
   .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int id) {
         ...
      }
   });
   return builder.create();
}

пример

В следующем примере демонстрируется использование AlertDialog в Android.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на эмуляторе или на реальном устройстве.

меры Описание
1 Вы будете использовать Android studio для создания приложения Android и назовите его My Application в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код диалога оповещения для запуска диалога.
3 Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо.
4 Нет необходимости изменять строковые константы по умолчанию. Android-студия заботится о строках по умолчанию в values ​​/ string.xml
5 Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Вот модифицированный код src / MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   public void open(View view){
      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
      alertDialogBuilder.setMessage("Are you sure,
         You wanted to make decision");
      alertDialogBuilder.setPositiveButton("yes", 
         new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this,"You clicked yes 
               button",Toast.LENGTH_LONG).show();
         }
      });

      alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
         Override
         public void onClick(DialogInterface dialog, int which) {
            finish();
         }
      });

      AlertDialog alertDialog = alertDialogBuilder.create();
      alertDialog.show();
   }
}

Вот модифицированный код res / layout / activity_main.xml

В приведенном ниже коде abc указывает логотип tutorialspoint.com

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Alert Dialog"
      android:id="@+id/textView"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:layout_alignLeft="@+id/textView"
      android:layout_alignStart="@+id/textView" />
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Alert dialog"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:layout_marginTop="42dp"
      android:onClick="open"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView" />
      
</RelativeLayout>

Вот из Strings.xml

<resources>
    <string name="app_name">My Application</string>
</resources>

Вот код по умолчанию для AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Давайте попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». Eclipse Run Icon значок с панели инструментов. Перед запуском приложения] Android Studio отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android.

Anroid Camera Tutorial

Выберите опцию и затем нажмите на нее. Предположим, что если вы нажали кнопку «Да», результат будет следующим:

Anroid Camera Tutorial

если вы не нажмете ни одну кнопку, он вызовет finish () и закроет ваше приложение.