Android - Dialog Peringatan
Dialog adalah jendela kecil yang mengarahkan pengguna untuk mengambil keputusan atau memasukkan informasi tambahan.
Terkadang dalam aplikasi Anda, jika Anda ingin bertanya kepada pengguna tentang mengambil keputusan antara ya atau tidak sebagai tanggapan atas tindakan tertentu yang diambil oleh pengguna, dengan tetap berada di aktivitas yang sama dan tanpa mengubah layar, Anda dapat menggunakan Dialog Peringatan.
Untuk membuat dialog peringatan, Anda perlu membuat objek AlertDialogBuilder yang merupakan kelas dalam AlertDialog. Sintaksnya diberikan di bawah ini
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
Sekarang Anda harus menyetel tombol positif (ya) atau negatif (tidak) menggunakan objek dari kelas AlertDialogBuilder. Sintaksnya adalah
alertDialogBuilder.setPositiveButton(CharSequence text,
DialogInterface.OnClickListener listener)
alertDialogBuilder.setNegativeButton(CharSequence text,
DialogInterface.OnClickListener listener)
Selain itu, Anda dapat menggunakan fungsi lain yang disediakan oleh kelas pembuat untuk menyesuaikan dialog peringatan. Ini tercantum di bawah
Sr Tidak | Jenis & deskripsi metode |
---|---|
1 | setIcon(Drawable icon) Metode ini mengatur ikon kotak dialog peringatan. |
2 | setCancelable(boolean cancel able) Metode ini menyetel properti yang dialognya bisa dibatalkan atau tidak |
3 | setMessage(CharSequence message) Metode ini menyetel pesan untuk ditampilkan dalam dialog peringatan |
4 | setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener) Metode ini menetapkan daftar item yang akan ditampilkan dalam dialog sebagai konten. Opsi yang dipilih akan diberitahukan oleh pendengar |
5 | setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) Metode ini Mengatur panggilan balik yang akan dipanggil jika dialog dibatalkan. |
6 | setTitle(CharSequence title) Metode ini mengatur judul yang akan ditampilkan dalam dialog |
Setelah membuat dan menyetel pembuat dialog, Anda akan membuat dialog peringatan dengan memanggil metode create () dari kelas pembuat. Sintaksnya adalah
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
Ini akan membuat dialog peringatan dan akan menampilkannya di layar.
Fragmen dialog
Sebelum masuk ke suatu contoh kita harus mengetahui dialog fragment. Fragmen dialog adalah fragmen yang dapat menampilkan fragmen pada kotak dialog
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();
}
}
}
Dialog daftar
Ini telah digunakan untuk menampilkan daftar item dalam kotak dialog. Misalkan, pengguna perlu memilih daftar item atau perlu mengklik item dari beberapa daftar item. Dalam situasi ini kita dapat menggunakan dialog daftar.
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();
}
Dialog daftar pilihan tunggal
Ini telah digunakan untuk menambahkan daftar pilihan tunggal ke kotak Dialog. Kita dapat mencentang atau menghapus centang sesuai pilihan pengguna.
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();
}
Contoh
Contoh berikut menunjukkan penggunaan AlertDialog di android.
Untuk bereksperimen dengan contoh ini, Anda perlu menjalankannya di emulator atau perangkat sebenarnya.
Langkah | Deskripsi |
---|---|
1 | Anda akan menggunakan studio Android untuk membuat aplikasi Android dan menamainya sebagai Aplikasi Saya di bawah paket com.example.sairamkrishna.myapplication. |
2 | Ubah file src / MainActivity.java untuk menambahkan kode dialog peringatan untuk meluncurkan dialog. |
3 | Ubah layout file XML res / layout / activity_main.xml tambahkan komponen GUI jika diperlukan. |
4 | Tidak perlu mengubah konstanta string default. Android studio menangani string default di values / string.xml |
5 | Jalankan aplikasi dan pilih perangkat android yang sedang berjalan dan instal aplikasi di atasnya dan verifikasi hasilnya. |
Berikut adalah kode yang dimodifikasi dari 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();
}
}
Berikut adalah kode yang dimodifikasi dari res/layout/activity_main.xml
Pada kode di bawah ini abc menunjukkan logo 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>
Ini dariStrings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
Berikut adalah kode default 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>
Mari coba jalankan aplikasi Anda. Saya berasumsi bahwa Anda telah menghubungkan perangkat Android Mobile Anda yang sebenarnya dengan komputer Anda. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik
Pilih opsi Anda dan kemudian klik di atasnya. Misalkan, jika Anda telah mengklik tombol yes, maka hasilnya adalah sebagai berikut
jika Anda mengklik tidak ada tombol itu akan memanggil finish () dan itu akan menutup aplikasi Anda.