2014-02-05 60 views
0

我目前正在创建一个Android应用程序,它需要让用户知道从列表视图中选择了哪些玩家。每个玩家只能玩三次,所以我希望每次选择一个名字时都可以改变列表视图背景的颜色。使用Android ListView拖放颜色变化

当我点击一个项目时,它会变成绿色。当在列表视图中点击不同的项目时,它将变成黄色。但是,我希望计数在同一个listview项目上。

我粘贴了下面的代码。任何人都可以告诉我一次点击一个listview项目的点击次数吗?

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

声明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]++; 
+0

嗨!非常感谢你的回复。我试图实现你的代码,但我有一些问题。我没有声明一个适配器来放置numberOfClicks = new int [data.size()]; 关于如何实现这个,你有什么建议吗?这是我的方法的开头: OnItemLongClickListener longListen =新OnItemLongClickListener(){ \t @覆盖 \t公共布尔onItemLongClick(适配器视图为arg0,视图V, INT POS,长ID){ – user3275801

+0

所以在您的活动本声明。并将此代码放在onItemLongClick –

+0

再次感谢。我试图这样做,但是,我仍然有问题numberOfClicks = new int [data.size()]; 我声明int [] numberOfClicks;在我的活动开始。然后我把numberOfClicks = new int [data.size()];在我开始if语句之前的onItemLongClick中。我也尝试将数据声明为一个变量,但这似乎也不适用于我!你知道我要去哪里吗?谢谢! – user3275801

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++); 
+0

非常感谢您的帮助。我试图实现这一点,但我似乎得到一个空指针异常。你会知道如何解决这个问题吗? – user3275801