Android - كيف يمكنني تعيين تفضيل في التعليمات البرمجية

StackOverflow https://stackoverflow.com/questions/552070

سؤال

لدي تطبيق Android الذي لدي تفضيلاتي في ملف XML، والذي يعمل بشكل جيد. أرغب الآن في تعيين أحد التفضيلات باستخدام التعليمات البرمجية بدلا من عرض شاشة التفضيل بأكملها، كيف سأذهب في القيام بذلك؟

هل كانت مفيدة؟

المحلول

أفترض من خلال التفضيلات التي تشير إليها إلى تفضيلات التطبيق وليس إعدادات هاتف Android.

لتخزين التفضيلات بين أشواط التطبيقات التي تحتاجها تحتاج إلى القيام بما يلي

  1. إنشاء كائن SharedPreeferences

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    String N يحدد تفضيلاتك والوسيطة الثانية هي الوضع الذي سيتم الوصول إليه

  2. إنشاء مثيل كائن المحرر

    SharedPreferences.Editor editor = settings.edit();
    

    ملاحظة: لا تحاول الإعدادات .edititor.edit ()، لن يؤدي هذا كائن مستمر وعدم العمل أدناه

  3. اكتب تفضيلاتك إلى المخزن المؤقت

    editor.put...(String, value)
    

    هناك العديد من الوظائف وضعت، podstring، putboolean، إلخ. السلسلة هي المفتاح ("الإصدار"، "تشغيل جيد") والقيمة هي القيمة ("1.5.2"، صحيح)

  4. فلوش العازلة

    editor.commit();
    

    هذا يكتب في الواقع وضعت تفضيلات. إذا تعطل تطبيقك قبل هذا السطر، فلن تتم كتابة التفضيلات. هناك أيضا علة موثقة: يرتكب () من المفترض أن يعيد منطقي يشير إلى النجاح أو الفشل. في الماضي، قمت بفحصها دائما عاد خطأ.

هذه التفضيلات من خلال تخزينها على الهاتف وسوف تكون متاحة فقط لتطبيقك.

المزيد من الوثائق هنا

نصائح أخرى

حاولت هذا ولكن لم أعمل:

SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

جرب هذا بدلا من ذلك:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);

يمكنك حفظ شيء ما في SharedPreefens باستخدام التعليمات البرمجية أدناه

public static void save(String valueKey, String value) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
    SharedPreferences.Editor edit = prefs.edit();
    edit.putString(valueKey, value);
    edit.commit();
    }

لقراءة التفضيلات:

public static String read(String valueKey, String valueDefault) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
   return prefs.getString(valueKey, valueDefault);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top