जवाबों:
यह एक सरल चेतावनी संवाद है , फेडेरिको ने आपको एक साइट दी है जहां आप चीजों को देख सकते हैं।
यहां एक संक्षिप्त उदाहरण है कि एक चेतावनी संवाद कैसे बनाया जा सकता है।
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();
एंड्रॉइड एक बिल्ट-इन YesNoPreference क्लास के साथ आता है जो वास्तव में वही करता है जो आप चाहते हैं (हाँ और कोई विकल्प के साथ एक पुष्टिकरण संवाद)। आधिकारिक स्रोत कोड यहाँ देखें ।
दुर्भाग्य से, यह com.android.internal.preference
पैकेज में है, जिसका अर्थ है कि यह एंड्रॉइड के निजी एपीआई का एक हिस्सा है और आप इसे अपने एप्लिकेशन से एक्सेस नहीं कर सकते हैं (निजी एपीआई कक्षाएं बिना सूचना के परिवर्तन के अधीन हैं, इसलिए 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();
}}
जैसा कि पहले बताया गया है कि ऐसा करने के कई तरीके हैं। यह एक तरीका है जिससे आप अपना कार्य कर सकते हैं, कृपया उत्तर स्वीकार करें यदि आपको लगता है कि आपको वह मिल गया है जो आप चाहते थे।