2014-02-05 62 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