Відповіді:
Це простий діалог попередження , Федеріко дав вам сайт, де можна переглянути речі.
Ось короткий приклад того, як можна побудувати діалог попередження.
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 поставляється із вбудованим класом YesNoPreference, який робить саме те, що ви хочете (підтвердження діалогового вікна з опціями "так" і "немає"). Офіційний вихідний код дивіться тут .
На жаль, він знаходиться в com.android.internal.preference
пакеті, що означає, що він є частиною приватних API Android, і ви не можете отримати доступ до нього зі свого додатка (приватні класи API можуть змінюватися без попереднього повідомлення, отже, причина, чому Google не дозволяє вам отримати доступ до них).
Рішення: просто заново створіть клас у пакеті вашої програми, скопіювавши / вставивши офіційний вихідний код із наданого я посилання. Я спробував це, і він працює чудово (немає причини, чому це не повинно).
Потім ви можете додати його, preferences.xml
як і будь-яке інше налаштування. Приклад:
<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" />
Як виглядає так:
Використовуйте налаштування намірів, якщо ви використовуєте xml-екран налаштування або ви користуєтеся власним екраном, тоді код буде, як показано нижче
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);
А потім створити клас активності дещо як нижче, оскільки різні люди як різні підходи ви можете використовувати будь-який підхід, який вам подобається, це лише приклад.
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();
}}
Як було сказано раніше, існує ряд способів зробити це. це один із способів виконувати своє завдання, будь ласка, прийміть відповідь, якщо відчуваєте, що отримали це, що хотіли.