我想做的基本上就是这样: 当我点击按钮时,我希望它的文字颜色出现不同的颜色。 我尝试的方法是:
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/red" />
<item
android:state_pressed="false"
android:color="#000" />
</selector>
然后我将此选择器用作按钮android:textColor上的可绘制对象
但这并不能解决它,因为它只在我按下按钮时更改其颜色。 我想要像这样:
默认:黑色 点击时:蓝色 再次点击:黑色有什么想法吗?:S
这是我的按钮形状(如果有影响):
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="-1dp"
android:insetLeft="-1dp"
android:insetRight="-1dp">
<selector>
<item android:state_pressed="false">
<shape android:shape="rectangle" >
<corners
android:radius="0dp"
/>
<solid
android:color="@color/background_grey"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<size
android:width="100dp"
android:height="30dp"
/>
<stroke
android:width="1dp"
android:color="#ffb4b4b4"
/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle" >
<corners
android:radius="0dp"
/>
<solid
android:color="@color/pq_blue"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<size
android:width="100dp"
android:height="30dp"
/>
<stroke
android:width="1dp"
android:color="#ffb4b4b4"
/>
</shape>
</item>
</selector>
</inset>
谢谢您提前的帮助。
编辑
所以我尝试以编程方式实现它,并尝试以下内容,只是为了查看是否更改颜色,但是它似乎不起作用(我的onClick事件似乎无效):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.listview_item, container, false);
final Button likeButton = (Button)rootView.findViewById(R.id.btLike);
likeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String test = "tester";
if(BUTTON_STATE==BUTTON_STATE_ONCE){
likeButton.setTextColor(getResources().getColor(R.color.pq_blue));
BUTTON_STATE = BUTTON_STATE_TWICE;
}else{
likeButton.setTextColor(getResources().getColor(R.color.red));
BUTTON_STATE = BUTTON_STATE_ONCE;
}
}
});
return rootView;
}
注意:我在我的ActionBarActivity(带有选项卡)的Fragment中使用onCreateView完成所有这些操作,如果我在onCreate中这样做,我会在findViewById处得到空指针异常(因为它会在我的MainActivity中搜索ID,对吗?)
所以,有什么建议吗?