2010-12-10 71 views
3

所以我試圖找到一種簡單的方法來獲取背景顏色或表格行來改變它的點擊。我一直在試圖找到一種方法來調用背景顏色,並檢查它,但我還沒有找到調用顏色的方法。這是我現在所擁有的。OnClick變更表格背景顏色

RowName = (TableRow) findViewById(R.id.RowName); 
    RowName.setBackgroundColor(Color.TRANSPARENT); 

    RowName.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      if (RowName.equals(Color.TRANSPARENT)) 
      RowName.setBackgroundColor(Color.YELLOW); 

      else if (RowName.equals(Color.YELLOW)) 
      RowName.setBackgroundColor(Color.TRANSPARENT); 
     } 
    }); 

我知道它錯了。希望你能看到我想要完成的事情。如果不是,我想要做的是讓表格行開始透明。當有人點擊表格行時,我希望它變成黃色。然後,如果他們再次點擊它,我希望它變回透明。謝謝。

+0

如果有人正在尋找一個像按鈕一樣的背景色行爲,請參閱http://stackoverflow.com/q/4075356/427545 – Lekensteyn 2012-04-05 19:22:21

回答

2

所以這是清盤工作。確保你有你的TableRows命名。在我創建之前,我有

private TableRow RowName;

我也有

INT狀態= 0;

。我然後添加代碼

public void RowName(View view) { 
    switch (state) { 
    case 0: 
     RowName.setBackgroundColor(Color.YELLOW); 
     state = 1; 
     break; 
    case 1: 
     RowName.setBackgroundColor(Color.TRANSPARENT); 
     state = 0; 
     break; 
    } 
} 

爲了得到它的工作,進入你的XML和在onclick屬性添加RowName或者你正在使用的公共無效的名稱。 享受。

8

您需要將行的背景顏色設置爲可繪製狀態列表(處理選擇,按下,激活,非激活)。

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

的XML應該是這個樣子:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Active state --> 
    <item android:state_selected="true" android:state_focused="false" 
     android:state_pressed="false" android:drawable="@android:color/transparent" /> 
    <!-- Inactive state--> 
    <item android:state_selected="false" android:state_focused="false" 
     android:state_pressed="false" android:drawable="@android:color/transparent" /> 
    <!-- Pressed state--> 
    <item android:state_pressed="true" android:drawable="@android:color/yellow" /> 
    <!-- Selected state (using d-pad) --> 
    <item android:state_focused="true" android:state_selected="true" 
     android:state_pressed="false" android:drawable="@android:color/yellow" /> 
</selector> 
+0

好的。涼。所以我的工作大部分。有沒有什麼辦法讓它保持黃色,直到再次按下它? – 2010-12-10 19:54:21

+0

好的,我明白你現在在做什麼。那麼國家名單可能不是你想要的,而是與你原來的東西類似。你有多少行?因爲如果你沒有那麼多,你可以保留一個變量來保存行的狀態(而不是查看當前的背景)。 – 2010-12-11 00:05:48

+0

我有20到25行。 – 2010-12-11 00:37:43