我需要更改listview backgroundcolor属性的颜色。我可以做到,我改变了颜色,但它改变了我所有的行,颜色相同。我的意思是,我需要一排红色,另一排绿色...我把下面的代码提供帮助:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, configureList(idRuta, rocodromo, dificultad))
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = super.getView(position, convertView, parent);
TextView text = (TextView) view.findViewById(android.R.id.text1);
for(int i = 0; i < colores.size(); i++)
{
if(colores.get(i).equals("0"))
{
text.setBackgroundColor(Color.GREEN);
}
else if(colores.get(i).equals("1"))
{
text.setBackgroundColor(Color.RED);
}
else if(colores.get(i).equals("2"))
{
text.setBackgroundColor(Color.YELLOW);
}
else
{
text.setBackgroundColor(Color.WHITE);
}
}
return view;
}
};
第一次,我有#34; colores.get(i)= 1&#34;,所以它将颜色改为RED,但后来我有#34; colores.get(i)= 2&# 34;,所以它将颜色改为黄色。但我需要将第二行改为黄色,而不是第一行,第一行必须为红色。
&#34; colores&#34;我有所有需要更改的颜色列表,按行排序,例如,当&#34; i = 0&#34;时,我将第0行更改为该颜色,但是当&#34; i = 1&#时34;我想只更改第1行,而不是所有行。
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:0)
试试这个:
if (position % 2 == 1) {
text.setBackgroundColor(Color.RED);
} else {
text.setBackgroundColor(Color.YELLOW);
}
此代码将背景颜色或奇数行设置为YELLOW甚至RED
答案 1 :(得分:0)
我认为你应该考虑到函数getView的“position”参数。我假设你喜欢第一排:绿色,下一个红色,下一个黄色,以及所有其他白色。为此:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, configureList(idRuta, rocodromo, dificultad))
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = super.getView(position, convertView, parent);
TextView text = (TextView) view.findViewById(android.R.id.text1);
if(colores.get(position).equals("0"))
{
text.setBackgroundColor(Color.GREEN);
}
else if(colores.get(position).equals("1"))
{
text.setBackgroundColor(Color.RED);
}
else if(colores.get(position).equals("2"))
{
text.setBackgroundColor(Color.YELLOW);
}
else
{
text.setBackgroundColor(Color.WHITE);
}
return view;
}
};
在这种方法中,将测试每一行(poistion is index)的颜色。
此处不需要通过颜色数组进行迭代,因为“position”索引应该等于颜色数组的颜色索引。
答案 2 :(得分:0)
删除for循环并按listview项目位置获取颜色。您只需在每个行视图中设置颜色。 改变如下,
auth2.grantOfflineAccess({'redirect_uri' : 'postmessage', 'approval_prompt' : 'force'}).then(onSignIn);