如何根据 android 中的可用性更改文本颜色



我正在解析来自URL的JSON数据。我正在使用此示例来解析数据我成功地解析了数据,现在我想要一点东西,如果产品可用,我想将其保留为绿色,但如果产品可用,我希望将该名称保留为其他颜色。

我的可用性数据是。

这是我可用的 JSON 数据

       {
          "id":"1234",
          "price": "311.95",
          "seller": "Shopclues.com",
          "availability": "Available",
          "currency": "USD"
        }

这是不可用的

        {
          "id":"4321"
          "price": "290.05",
          "seller": "Tradus.com",
          "availability": "Not Available",
          "currency": "USD"
        }

所以我想要数据,比如产品是否可用我希望"id":"1234"应该是绿色的,其他方面应该是其他颜色,如黑色、灰色或红色。

尝试使用普通数据,但这我得到了 forma URL,因此请给我任何关于从 URL 获取的动态 JSON 数据的建议。

JSONObject jObj = new JSONObject(String);
if (jObj.getString("availability").equalsIgnoreCase("Not Available")) {
     textView1.setTextColor(Color.RED)
} else {
      textView1.setTextColor(Color.GREEN)
}
JSONObject jObj = new JSONObject(String);
if (jObj.getString("availability").equalsIgnoreCase("Not Available")) {
       //textcolor = red
} else {
       //textcolor = green
}

如果您想更改字符串的一部分,请在 android 中使用 Spannable。以这篇文章为例。否则TextView有一个 setTextColor 方法,该方法采用 int。此 int 不是资源 ID。它应该按如下方式使用textView1.setTextColor(getResources().getColor(R.color.mycolor))textView1.setTextColor(Color.RED)

试试这个。

     JSONObject object= new JSONObject(String);
     if (object.getString("availability").equalsIgnoreCase("Available")) {
           textView1.setTextColor(Color.GREEN)
     } else {
           textView1.setTextColor(Color.RED)
     }

最新更新