2012-07-06 125 views
0

我有这样的代码在我的ArrayAdapter:ListView控件设置背景颜色

public View getView(int position, View convertView, ViewGroup parent) { 
    View row = super.getView(position, convertView, parent); 

    Toast.makeText(getApplicationContext(), getItem(position).getString("text") + " = " + getItem(position).getString("my"), Toast.LENGTH_SHORT).show(); 

    if(getItem(position).getString("my") == "0") { 
     row.setBackgroundColor(getResources().getColor(R.color.ekvi)); 
    } 
    TextView tv = (TextView) row.findViewById(android.R.id.text1); 
    tv.setText(getItem(position).getString("text")); 
    tv.setTextColor(Color.BLACK); 

    return row; 
} 

虽然背景颜色不适用。我查了一下“我”的字符串,它是真正的有时是“0”,所以它必须工作。

我在做什么错?

+0

你已经尝试使用'如果(的getItem(位置).getString( “我”)等于( “0”)'? – 2012-07-06 12:25:16

+0

尝试使用equalsIgnoreCase()。比较包含数字的字符串时 – 2012-07-06 12:28:10

+0

equalsIgnoreCase没有任何区别:P – Carnal 2012-07-06 12:33:16

回答

2

使用.equals() to compare Strings objects.

  • == compares Strings Refrences(memory location)

  • .equals() compares Strings characters(value)

if(getItem(position).getString("my").equals("0")) { 
+0

谢谢!我真的忘了这一点(当时编程C#的地方==也适用)。 – Uhehesh 2012-07-06 12:44:33