0

我想在按下按鈕(其工作)時更改背景視圖。我的問題是,如果我按下列表中的其他視圖(不是同一個),我想將我的背景設置爲新選定視圖的黑色,並將背景更改爲先前選定視圖的白色。這是我實現清除之前選擇的視圖背景並更改Onclick中新選擇的視圖的背景 - Android

for(final TotalPlayers player :  this.playerData){ 
    final ArrayList<View> addedPlayerViews1 = getPlayerView(player); 
    dropPlayersListView.addView(addedPlayerViews1.get(0)); 
    addedPlayerViews1.get(0).setOnClickListener(new OnClickListener() { 
    boolean highlight = false; 
    @Override 
    public void onClick(View v) { 

     if (!highlight) 
     { 
      addedPlayerViews1.get(0).setBackgroundColor(Color.BLACK); 
      highlight=true; 
     } 
     else { 
      addedPlayerViews1.get(0).setBackgroundColor(Color.WHITE); 
      highlight=false; 
     } 

     } 
    });   
    } 
} 
+0

你爲什麼這樣做?您正在arraylist中添加一個視圖。那是什麼目的? – stinepike 2013-04-28 03:22:18

回答

0
addedPlayerViews1.get(1).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      addedPlayerViews1.get(0).setBackgroundColor(Color.WHITE); 
      highlight=false; 

    } 
}); 

我認爲你可以通過獲得其他視圖(1)。

您的代碼的問題是您只處理了您想要更改背景的視圖的onClick事件。但你也需要處理其他視圖的onClick。

+0

嗨Stine,感謝您的快速回復。但我沒有通過addedPlayerViews1.get(1)獲得其他視圖。它通過一個數組循環。 – dhiku 2013-04-28 03:13:54

+0

你需要將onClickListener設置爲該其他視圖..我使用get(1)僅爲示例 – stinepike 2013-04-28 03:14:55

+0

我剛剛更新了我的代碼... – dhiku 2013-04-28 03:20:03