点击事件按钮颜色后应保持相同

时间:2015-01-24 10:59:28

标签: android button

我有两个按钮..按钮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>

4 个答案:

答案 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);

        }
    });