Jawaban:
Itu adalah dialog peringatan sederhana , Federico memberi Anda situs tempat Anda dapat mencari sesuatu.
Berikut adalah contoh singkat bagaimana dialog peringatan dapat dibuat.
new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Do you really want to whatever?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
Android hadir dengan kelas YesNoPreference bawaan yang melakukan apa yang Anda inginkan (dialog konfirmasi dengan opsi ya dan tidak). Lihat kode sumber resminya di sini .
Sayangnya, ini ada dalam com.android.internal.preference
paket, yang berarti itu adalah bagian dari API pribadi Android dan Anda tidak dapat mengaksesnya dari aplikasi Anda (kelas API pribadi dapat berubah tanpa pemberitahuan, itulah alasan mengapa Google tidak mengizinkan Anda mengaksesnya).
Solusi: cukup buat ulang kelas dalam paket aplikasi Anda dengan menyalin / menempel kode sumber resmi dari tautan yang saya berikan. Saya sudah mencoba ini, dan berfungsi dengan baik (tidak ada alasan mengapa tidak boleh).
Anda kemudian dapat menambahkannya preferences.xml
seperti Preferensi lainnya. Contoh:
<com.example.myapp.YesNoPreference
android:dialogMessage="Are you sure you want to revert all settings to their default values?"
android:key="com.example.myapp.pref_reset_settings_key"
android:summary="Revert all settings to their default values."
android:title="Reset Settings" />
Yang terlihat seperti ini:
Gunakan Preferensi Intent jika Anda menggunakan layar xml preferensi atau Anda jika Anda menggunakan layar kustom Anda maka kodenya akan seperti di bawah ini
intentClearCookies = getPreferenceManager().createPreferenceScreen(this);
Intent clearcookies = new Intent(PopupPostPref.this, ClearCookies.class);
intentClearCookies.setIntent(clearcookies);
intentClearCookies.setTitle(R.string.ClearCookies);
intentClearCookies.setEnabled(true);
launchPrefCat.addPreference(intentClearCookies);
Dan kemudian Buat Kelas Aktivitas seperti di bawah ini, Sebagai orang yang berbeda sebagai pendekatan yang berbeda, Anda dapat menggunakan pendekatan apa pun yang Anda suka ini hanyalah sebuah contoh.
public class ClearCookies extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
showDialog();
}
/**
* @throws NotFoundException
*/
private void showDialog() throws NotFoundException {
new AlertDialog.Builder(this)
.setTitle(getResources().getString(R.string.ClearCookies))
.setMessage(
getResources().getString(R.string.ClearCookieQuestion))
.setIcon(
getResources().getDrawable(
android.R.drawable.ic_dialog_alert))
.setPositiveButton(
getResources().getString(R.string.PostiveYesButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
})
.setNegativeButton(
getResources().getString(R.string.NegativeNoButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
}).show();
}}
Seperti yang diceritakan sebelumnya, ada beberapa cara untuk melakukan ini. ini adalah salah satu cara Anda dapat melakukan tugas Anda, terimalah jawabannya jika Anda merasa telah mendapatkan apa yang Anda inginkan.