我在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导入该值的值。 我该如何解决这个问题?
答案 0 :(得分:0)
我不懂非英语代码,但我敢打赌你传递了资源ID,这就是为什么颜色变得不同了。分配颜色时使用ContextCompat.getColor
答案 1 :(得分:0)
看起来你在颜色的resId和颜色的原始值之间混淆了。它们都是int
类型。说实话,你的代码编码风格很糟糕,我不知道你在做什么,但是试着看看setTextColor
和setCardBackgroundColor
方法并找出传递给哪种值他们,resId或颜色值?