सहेजने की प्राथमिकता साझा नहीं की है मैंने एक एंड्रॉइड लाइव वॉलपेपर बनाया है और मैं उपयोगकर्ता को अपने फोन से एक छवि चुनने और इसे पृष्ठभूमि छवि के रूप में लागू करने की कोशिश कर रहा हूं, लेकिन जब मैं उस गतिविधि को लॉन्च करता हूं जो इरादा शुरू करता है छवियों को चुनें, मेरी साझा प्राथमिकताएं ठीक से सहेजने लगती नहीं हैं।एंड्रॉइड साझा प्राथमिकताओं
नीचे मेरी गतिविधि पर शुरू होता है जब मैं वरीयता बटन दबाता हूं, और ऑनएक्टिविटी रिसेट जो डिवाइस पर छवि का पथ प्राप्त करता है (जो काम करता है)। प्राथमिकताएं करने के बाद println कुछ भी प्रिंट नहीं करता है।
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
preferences.edit().putString(SETTINGS_BACKGROUND_IMAGE, "okok");
preferences.edit().commit();
System.out.println("Image" + preferences.getString(SETTINGS_BACKGROUND_IMAGE, ""));
}
}
finish();
}
मैं केवल एक है जो इस और मूल कोड के बीच तर्क में अंतर नहीं देख सकता हूँ? – josephus
जब आप वरीयताओं को कॉल करते हैं .edit(), आपको एक संपादक उदाहरण मिलता है, जिस पर jOE स्ट्रिंग डाल रहा था, लेकिन उसके बाद, उस उदाहरण का अब उपयोग नहीं किया गया था (इस प्रकार खो गया, और संभवतः कचरा एकत्रित किया गया था)। फिर, जोई ने प्राथमिकताएं .edit() को फिर से बुलाया, एक और संपादक उदाहरण प्राप्त करना जिसमें प्रारंभिक सेटिंग्स शामिल हैं, जिन्हें उन्होंने अभी स्थान पर सहेजा था। यह मूल रूप से प्रारंभिक सेटिंग्स को सहेजा गया (अपनी साझा वरीयताओं को अपडेट करने के लिए कुछ भी नहीं किया) – zrgiu
zrgui, आपकी मदद के लिए बहुत बहुत धन्यवाद! आपका सुझाव पूरी तरह से काम किया! – jOE