Android - Alarmdialog

Ein Dialog ist ein kleines Fenster, in dem der Benutzer zu einer Entscheidung aufgefordert oder zusätzliche Informationen eingegeben werden.

Wenn Sie in Ihrer Anwendung den Benutzer manchmal fragen möchten, ob er als Reaktion auf eine bestimmte Aktion des Benutzers eine Entscheidung zwischen Ja oder Nein treffen möchte, indem Sie in derselben Aktivität bleiben und den Bildschirm nicht ändern, können Sie den Warnungsdialog verwenden.

Um einen Warnungsdialog zu erstellen, müssen Sie ein Objekt von AlertDialogBuilder erstellen, das eine innere Klasse von AlertDialog ist. Die Syntax ist unten angegeben

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

Jetzt müssen Sie die positive (Ja) oder negative (Nein) Schaltfläche mit dem Objekt der AlertDialogBuilder-Klasse festlegen. Die Syntax lautet

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

Abgesehen davon können Sie andere Funktionen der Builder-Klasse verwenden, um den Warnungsdialog anzupassen. Diese sind unten aufgeführt

Sr.Nr. Methodentyp & Beschreibung
1

setIcon(Drawable icon)

Diese Methode setzt das Symbol des Alarmdialogfelds.

2

setCancelable(boolean cancel able)

Diese Methode legt die Eigenschaft fest, dass der Dialog abgebrochen werden kann oder nicht

3

setMessage(CharSequence message)

Diese Methode legt die Nachricht fest, die im Warndialog angezeigt werden soll

4

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

Diese Methode legt eine Liste der Elemente fest, die im Dialogfeld als Inhalt angezeigt werden sollen. Die ausgewählte Option wird vom Listener benachrichtigt

5

setOnCancelListener(DialogInterface.OnCancelListener onCancelListener)

Diese Methode Legt den Rückruf fest, der aufgerufen wird, wenn der Dialog abgebrochen wird.

6

setTitle(CharSequence title)

Diese Methode legt den Titel fest, der im Dialogfeld angezeigt werden soll

Nach dem Erstellen und Festlegen des Dialog-Builders erstellen Sie einen Warnungsdialog, indem Sie die create () -Methode der Builder-Klasse aufrufen. Die Syntax lautet

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

Dadurch wird der Warndialog erstellt und auf dem Bildschirm angezeigt.

Dialogfragment

Bevor wir ein Beispiel eingeben, müssen wir das Dialogfragment kennen. Das Dialogfragment ist ein Fragment, das ein Fragment im Dialogfeld anzeigen kann

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();
      }
   }
}

Listendialog

Es wurde verwendet, um eine Liste von Elementen in einem Dialogfeld anzuzeigen. Angenommen, der Benutzer muss eine Liste von Elementen auswählen oder auf ein Element aus mehreren Listen von Elementen klicken. In dieser Situation können wir das Listendialogfeld verwenden.

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();
}

Single-Choice-Listendialog

Es wurde verwendet, um dem Dialogfeld eine Auswahlliste hinzuzufügen. Wir können je nach Benutzerauswahl aktivieren oder deaktivieren.

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();
}

Beispiel

Das folgende Beispiel zeigt die Verwendung von AlertDialog in Android.

Um mit diesem Beispiel zu experimentieren, müssen Sie dies auf einem Emulator oder einem tatsächlichen Gerät ausführen.

Schritte Beschreibung
1 Mit Android Studio erstellen Sie eine Android-Anwendung und benennen sie unter dem Paket com.example.sairamkrishna.myapplication als Meine Anwendung.
2 Ändern Sie die Datei src / MainActivity.java, um den Warnungsdialogcode zum Starten des Dialogs hinzuzufügen.
3 Ändern Sie die Layout-XML-Datei res / layout / activity_main.xml und fügen Sie bei Bedarf eine beliebige GUI-Komponente hinzu.
4 Die Standardzeichenfolgenkonstanten müssen nicht geändert werden. Android Studio kümmert sich um die Standardzeichenfolgen unter values ​​/ string.xml
5 Führen Sie die Anwendung aus und wählen Sie ein laufendes Android-Gerät aus. Installieren Sie die Anwendung darauf und überprüfen Sie die Ergebnisse.

Hier ist der geänderte Code von 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();
   }
}

Hier ist der geänderte Code von res/layout/activity_main.xml

Im folgenden Code abc zeigt das Logo von tutorialspoint.com an
<?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>

Hier ist vonStrings.xml

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

Hier ist der Standardcode von 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>

Versuchen wir, Ihre Anwendung auszuführen. Ich gehe davon aus, dass Sie Ihr aktuelles Android Mobile-Gerät mit Ihrem Computer verbunden haben. Um die App in Android Studio auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in

der Symbolleiste auf das Symbol Ausführen . Vor dem Starten Ihrer Anwendung] zeigt Android Studio das folgende Fenster an, um eine Option auszuwählen, bei der Sie Ihre Android-Anwendung ausführen möchten.

Wählen Sie eine Option aus und klicken Sie darauf. Angenommen, wenn Sie auf die Schaltfläche Ja geklickt haben, würde das Ergebnis wie folgt aussehen

Wenn Sie auf keine Schaltfläche klicken, wird finish () aufgerufen und Ihre Anwendung geschlossen.