цвета Android не отображаются правильно - PullRequest
0 голосов
/ 21 мая 2018

Цвета, которые есть в Color.xml, не отображаются должным образом в приложении.Например, синий цвет выглядит фиолетовым на экране.Ниже приведены мои коды.Если я допустил ошибку, предупредите меня

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="temaRenk">#01579B</color>
    <color name="temaGri">#F4F4F4</color>
    <color name="temaKapaliGri">#EDEDED</color>
    <color name="temaLacivert">#000019</color>
    <color name="masaBekliyor">#FFFFFF</color>
    <color name="masaHazirlaniyor">#00B4FF</color>
    <color name="masaHazir">#53C976</color>
    <color name="masaServis">#EFE302</color>
    <color name="masaIptal">#D21044</color>
</resources>

override fun onBindViewHolder(holder: masaListesiViewHolder, position: Int) {
        var olusturulan = MASALAR.get(position)
        holder.setData(position, olusturulan)
    }

    inner class masaListesiViewHolder(itemView : View?) : RecyclerView.ViewHolder(itemView){
        var masa = itemView as CardView
        fun setData(position: Int, olusturulan: MasaBilgileri) {
            masa.MASAADI.setText(olusturulan.MASAADI)
            var adisyonBilgisi = ADISYONLISTESI.filter{ adisyon -> adisyon.MASAADI == olusturulan.MASAADI}
            if(adisyonBilgisi.size != 0){
                var DURUMKONTROL = masaDurumuBelirle(adisyonBilgisi.get(0).DURUM)

                masa.MASATUTARI.setText(adisyonBilgisi.get(0).TUTAR.toString())
                masa.MASADURUMU.setText(DURUMKONTROL.get(0).MASADURUMU)


                masa.MASAADI.setTextColor(DURUMKONTROL.get(0).YAZIRENK)
                masa.MASATUTARI.setTextColor(DURUMKONTROL.get(0).YAZIRENK)
                masa.MASADURUMU.setTextColor(DURUMKONTROL.get(0).YAZIRENK)

                masa.setCardBackgroundColor(DURUMKONTROL.get(0).ARKAPLANRENK)
            }
        }
        fun masaDurumuBelirle(DURUM : Int) : ArrayList<MASADURUMBILGILERI>{
            var durumlar = ArrayList<MASADURUMBILGILERI>()
             when(DURUM){
                0 -> { durumlar.add(MASADURUMBILGILERI("BEKLİYOR", R.color.masaBekliyor, Color.BLACK))}
                1 -> { durumlar.add(MASADURUMBILGILERI("HAZIRLANIYOR",R.color.masaHazirlaniyor, Color.WHITE))}
                2 -> { durumlar.add(MASADURUMBILGILERI("HAZIR",R.color.masaHazir, Color.BLACK))}
                3 -> { durumlar.add(MASADURUMBILGILERI("SERVİS E.",R.color.masaServis, Color.BLACK))}
                4 -> { durumlar.add(MASADURUMBILGILERI("İPTAL",R.color.masaIptal, Color.WHITE))}
            }
            return durumlar
        }
    }
    data class MASADURUMBILGILERI(var MASADURUMU : String, var ARKAPLANRENK : Int, var YAZIRENK : Int){}

Я отправляю значение в другую функцию из ViewHolder и импортирую значения для этого значения из color.xml.Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Похоже, вы путаете между resId цветов и необработанным значением цветов.Они все в int типе.Если честно, ваш код имеет ужасный стиль кодирования, я понятия не имею, что вы делаете, но попробуйте взглянуть на метод setTextColor и setCardBackgroundColor и выяснить, какое значение им передается, resId илизначение цвета?

0 голосов
/ 21 мая 2018

Я не понимаю неанглоязычный код, но держу пари, что вы передаете идентификаторы ресурсов, поэтому цвета получаются разными.Используйте ContextCompat.getColor при назначении цветов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...