2015-06-27 45 views
0

我正在通過stackOverflow和互聯網進行搜索,但我無法找到正確的信息。如何在小部件中創建按鈕,它改變onClick的顏色?

當然我知道RemotViews是什麼,onClick方法在普通活動中的基礎知識,但是在widget中它太複雜了。我正在尋找這樣的東西:PendingIntent,Intent但沒有找到任何東西。

問題/我想實現:

在我的主屏幕小部件,我有一個button。當我點擊時,我希望它的顏色改變,再次點擊它,我希望它被設置爲初始顏色。進一步的點擊,我想這個切換髮生。

希望有人幫我:)

回答

0

在你的活動佈局文件,設置按鈕

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:onClick="onClick"/> 

默認白色作爲背景。然後在你的java代碼中。

public void onClick(View view) { 
    ColorDrawable colorDrawable = (ColorDrawable)view.getBackground(); 
    int buttonColor = colorDrawable.getColor(); 
    if (buttonColor == R.color.white) { 
     view.setBackgroundColor(getResources().getColor(R.color.red)); 
    } else { 
     view.setBackgroundColor(getResources().getColor(R.color.white)); 
    } 
} 

這會在每次按下按鈕時調換顏色。

0

您應該嘗試使用選擇器可繪製顏色狀態列表並將其設置爲按鈕的背景。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:color="#ffff0000"/> <!-- pressed --> 
    <item android:state_focused="true" 
      android:color="#ff0000ff"/> <!-- focused --> 
    <item android:color="#ff000000"/> <!-- default --> 
</selector>