我有两个按钮..按钮A和按钮B ..我为这两个设置背景白色...我想要的是当用户点击按钮A时,背景颜色应该变黑并且应该保持黑色直到用户点击按钮乙..
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape android:shape="rectangle" >
<stroke android:width="1dip" android:color="#c53e2b" />
<gradient
android:angle="-90"
android:startColor="#a11005"
android:endColor="#d62608" />
</shape>
</item>
<item android:state_pressed="false">
<shape android:shape="rectangle" >
<stroke android:width="1dip" android:color="#c53e2b" />
<solid android:color="#e0341e"/>
</shape>
</item>
<item >
<shape android:shape="rectangle" >
<stroke android:width="1dip" android:color="#c53e2b" />
<gradient
android:angle="-90"
android:startColor="#ff6c52"
android:endColor="#e0341e" />
</shape>
</item>
</selector>
答案 0 :(得分:0)
我会更改您的活动文件中按钮的背景颜色。
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button1.setBackgroundColor(000000);
}
});
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button1.setBackgroundColor(FFFFFF);
}
});
只需在按钮上添加2个onclick侦听器,如果单击button1,则更改button1的backgroundcolour,如果单击button2,则将其更改回来。
以下是我使用的一些示例XML按钮(您可能需要更改一下):
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/bg"
android:layout_alignParentBottom="true"
android:text="@string/action_settings" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/bg"
android:layout_alignParentBottom="true"
android:text="@string/action_settings" />
答案 1 :(得分:0)
您只需使用以下代码即可:
button1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
button1.setPressed(true);
button2.setPressed(false);
return true;
}
});
答案 2 :(得分:0)
我会将一个激活状态(android:state_activated="true"
)添加到可绘制的xml中,并在按钮的点击上更改另一个按钮setActivated(true/false)
。
答案 3 :(得分:0)
一种方法是你应该创建两个xml文件,如上所述,用于按钮的点击事件。
final Button b = new Button (MyClass.this);
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.whatever));
final Button b1 = new Button (MyClass.this);
b1.setBackgroundDrawable(getResources().getDrawable(R.drawable.whatever1));
无论如何,what1是你创建的xml文件。
另一种方法是做,
b.setOnClickListener(new View.onClick Listener){
@Override
public void onClick(View v) {
button.setBackgroundColor(000000);
}
});
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
b1.setBackgroundColor(FFFFFF);
}
});