我目前正在创建一个Android应用,需要让用户知道从列表视图中选择了哪些播放器。每个玩家只能玩三次,所以我希望每次选择名称时都能改变列表视图中背景的颜色。
当我点击一个项目时,它将变为绿色。在列表视图中单击其他项目时,它将变为黄色。但是,我希望计数在同一列表视图项上。
我在下面粘贴了我的代码。有人能告诉我一次计算单个列表视图项目的点击次数吗?
TextView text1 = (TextView)v;
if (numberOfClicks == 1)
{
text1.setBackgroundColor(Color.GREEN);
v.findViewById(android.R.id.text1);
}
else if (numberOfClicks == 2)
{
text1.setBackgroundColor(Color.YELLOW);
v.findViewById(android.R.id.text1);
}
else if (numberOfClicks == 3)
{
text1.setBackgroundColor(Color.RED);
v.findViewById(android.R.id.text1);
}
numberOfClicks++;
答案 0 :(得分:0)
在适配器中声明一个int数组:
int[] numberOfClicks;
在适配器的构造函数中初始化它。
numberOfClicks=new int[data.size()];
现在在getView
TextView text1 = (TextView)v;
if(numberOfClicks[position]==1)
{
text1.setBackgroundColor(Color.GREEN);
v.findViewById(android.R.id.text1);
}
else if (numberOfClicks[position]==2)
{
text1.setBackgroundColor(Color.YELLOW);
v.findViewById(android.R.id.text1);
}
else if (numberOfClicks[position]==3)
{
text1.setBackgroundColor(Color.RED);
v.findViewById(android.R.id.text1);
}
numberOfClicks[position]++;
答案 1 :(得分:0)
它是尖峰,但可以工作:
HashMap<Integer, Integer> mClickedMap = new HashMap<Integer, Integer>();
...
if (mClickedMap.get(v)==1){
text1.setBackgroundColor(Color.GREEN);
v.findViewById(android.R.id.text1);
}
...
mClickedMap.put(v,numberOfClicks++);