2015-06-27 17 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>