2014-06-14 105 views
0

我想用指示按鈕(ID =按鈕1)的顏色代碼的顏色和做一些事情,如果顏色是藍色, 我的意思=獲取按鈕

如果Button1的顏色藍色類型1,如果其綠色,黃色或其他顏色,鍵入遊戲結束。

我該怎麼辦?

我想是這樣的:

if(v.getId() == R.id.button1){ 
      ColorDrawable buttonColor = (ColorDrawable) button1.getBackground(); 
      int colorId = buttonColor.getColor(); 
     } 

有一個錯誤:

Multiple markers at this line 
- Type mismatch: cannot convert from ColorDrawable to int 
- The method getColor() is undefined for the type 

,如果你正在上空盤旋的getColor()你會得到另一個錯誤:

The method getColor() is undefined for the type ColorDrawable 

我能做什麼? thx。

+0

我同意Gabe的回答。方法getColor()僅在API 11(Honeycomb)及更高版本中可用。請參閱http://stackoverflow.com/a/8089242/775467 – coderplus

+0

我不知道該怎麼做呢..我只是一個初學者,Gabe的回答很難.. – user3731180

回答

0

您也可以嘗試像設定的顏色值作爲標記像

android:tag="#ff0000" 

並獲得它的代碼

String colorCode = (String)btn.getTag(); 

OR

Button button = (Button) findViewById(R.id.my_button); 
Drawable buttonBackground = button.getBackground(); 
1

這是錯誤的做法。你永遠不應該使用UI屬性來確定程序狀態,這樣做會導致意大利麪代碼。相反,你應該在你的代碼中使用一個名字,這個名字意味着一些容易理解的變量來跟蹤按鈕的狀態。每當你改變按鈕的顏色時,你設置這個變量。然後,當你需要根據顏色做出決定時,你使用這個變量。

+0

請問您能更具體嗎?它是我的第一個應用程序,你可以給我一種方法來做到這一點嗎? – user3731180