سؤال

لا أفهم ما يحدث هنا. لديّ قائمة مرجعة مع الإدخالات وقيم الدخول بشكل صحيح.

عندما أذهب إلى نشاط المفضلات وأغير القيمة التي تعمل بنجاح (أضفت نخبًا لإخراج القيمة بعد تغيير خيار الاختبار).

ولكن عندما أفعل ما يلي لمقارنته ، فإنه ينفذ دائمًا احصائي آخر عندما أقوم بتغييره في كل مرة ، حتى كما هو الحال أعلاه عندما غيرت محرك القائمة وكانت القيمة "Bluesky" لا تزال فشلت في تنفيذ العبارة IF الصحيحة.

إليك الرمز الذي أستخدمه للتحقق من قيمة ListPreference في OnResume ():

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this)
String backgroundPref = prefs.getString("backgroundPref", "");

  if(backgroundPref == "bluesky"){
    mainLayout.setBackgroundResource(R.drawable.bluesky); 
    Toast.makeText(getBaseContext(), "Blue Sky", Toast.LENGTH_SHORT).show();
  }else if(backgroundPref == "sky"){
    mainLayout.setBackgroundResource(R.drawable.sky);   
    Toast.makeText(getBaseContext(), "Sky", Toast.LENGTH_SHORT).show();
  }else{
    mainLayout.setBackgroundResource(R.drawable.sunsetscene);
    Toast.makeText(getBaseContext(), "Sunset Scene", Toast.LENGTH_SHORT).show();
  }

الخبز المحمص موجود حتى أتمكن من التحقق من العبارة التي يتم تنفيذها ، ويبدو دائمًا أن هذا هو آخر.

هل أواجه يومًا سيئًا وأخطئ؟

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

المحلول

للمبتدئين لا تقارن خيوط مثل هذا backgroundPref == "bluesky" يجب ان يكون backgroundPref.equals("bluesky");

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top