सोमवार जैसे सप्ताह के वर्तमान दिन कैसे प्राप्त करें और एंड्रॉइड में इसकी तुलना करें

मेरे पास सोमवार, मंगलवार, .... रविवार की 7 अलग-अलग छवियां हैं। अब मैं क्या करना चाहता हूं जब स्क्रीन खुलती है तो वर्तमान दिन छवि अलग-अलग रंग में होनी चाहिए।

मैंने नीचे कोड के साथ प्रयास किया है लेकिन अलग रंग नहीं मिला है।

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);

TextView textView = (TextView) findViewById(R.id.textView1);
textView.setText(dayOfTheWeek);

अब टेक्स्टव्यू में, मुझे गुरुवार को मिल रहा है क्योंकि आज गुरुवार है। अब मैंने नीचे की तरह शर्त दी है।

    imageViewMon = (ImageView) findViewById(R.id.mon);
    imageViewTue = (ImageView) findViewById(R.id.tue);
    imageViewWed = (ImageView) findViewById(R.id.wed);
    imageViewThu = (ImageView) findViewById(R.id.thu);
    imageViewFri = (ImageView) findViewById(R.id.fri);
    imageViewSat = (ImageView) findViewById(R.id.sat);
    imageViewSun = (ImageView) findViewById(R.id.sun);



    if (dayOfTheWeek == "Monday") {
        imageViewMon.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Tuesday") {
        imageViewTue.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Wednesday") {
        imageViewWed.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Thursday") {
        imageViewThu.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Friday") {
        imageViewFri.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Saturday") {
        imageViewSat.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Sunday") {
        imageViewSun.setColorFilter(0xFFFF3D60);
    }

लेकिन मुझे छवि रंग नहीं मिल रहा है जैसा कि मैं चाहता हूं, कुछ भी नहीं होता है, टेक्स्ट व्यू आज के दिन दिखाता है लेकिन मुझे अपनी छवि में अलग रंग नहीं मिल रहा है।

अग्रिम में धन्यवाद।

0
@ElliottFrisch, हाँ, लेकिन मैंने शर्त का उपयोग किया है, इसलिए यह केवल वर्तमान दिनों के लिए बदल जाएगा, अन्य केवल सामान्य सेट किए जाएंगे।
जोड़ा लेखक InnocentKiller, स्रोत
मुझे लगता है कि वे सभी एक ही रंगफिल्टर पर सेट हैं।
जोड़ा लेखक Elliott Frisch, स्रोत

4 उत्तर

इसे इस्तेमाल करे:

Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);

switch(day) {
    case Calendar.MONDAY:
        imageViewMon.setColorFilter(0xFFFF3D60);
        break;
        ...
}
3
जोड़ा
तो मैं दिनों की तुलना कैसे कर सकता हूं और अपने रंग की छवि कैसे बदल सकता हूं।
जोड़ा लेखक InnocentKiller, स्रोत
मैंने अपना जवाब अपडेट किया
जोड़ा लेखक mvieghofer, स्रोत

इसे इस्तेमाल करे:

Calendar c = Calendar.getInstance();
int d = c.get(Calendar.DAY_OF_WEEK);
switch (d) {
    case Calendar.MONDAY:
        imageViewMon.setColorFilter(0xFFFF3D60);
        break;
       //...
}

आपके कोड में दो समस्याएं हैं:

  1. स्ट्रिंग की तुलना बराबर() के साथ की जानी चाहिए, नहीं ==
  2. लोकेल के आधार पर, उपयोगकर्ता आपका ऐप चलाता है, यह कभी मेल नहीं खाएगा, क्योंकि 'सोमवार' 'मोंटैग' या कोई अन्य अनुवाद नहीं है।
1
जोड़ा
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);

switch(day) {
    case Calendar.MONDAY:
        ...
}

And you must compare strings with if(string1.compareTo(string2) == 0) { ...}

1
जोड़ा

प्रश्न का उत्तर पहले से ही दिया गया है लेकिन आप सभी कैसे उपयोग कर सकते हैं या स्विच कर सकते हैं ... इच्छित मूल्यों (तार, रंग, जो भी आप चाहते हैं) के साथ सरणी (या संग्रह ...) का उपयोग करें और दिन की संख्या प्राप्त करें, फिर बस संख्या का उपयोग करें उस सरणी में स्थिति। इस तरह आप सभी लंबे आईएस/स्विच इत्यादि को फिर से लिखने के बजाय सिर्फ एक सरणी स्विच कर सकते हैं।

0
जोड़ा