2015-01-24 3 views
0

У меня есть две кнопки. Кнопка A и кнопка B..I установить фоновый белый для обоих .. то, что я хочу, когда пользователь нажимает кнопку A, цвет фона должен меняться черным, и это должен оставаться черным до тех пор, пока пользователь не нажмет на кнопку B ..после нажатия кнопки кнопки цвет должен оставаться таким же

<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

Я бы изменил цвет фона кнопки в вашем файле активности.

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 слушателей на кнопках и изменить backgroundcolour из button1, если нажать Button1 и изменить его обратно, если вы нажмете на 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" /> 
0

Вы можете сделать это, используя просто ниже код:

button1.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       button1.setPressed(true); 
       button2.setPressed(false); 
       return true; 
      } 
     }); 
0

Я хотел бы добавить активированный (android:state_activated="true") в xble drawable и измените другую кнопку setActivated(true/false) на кнопку.

0

Один из подходов заключается в том, что вы должны создать два xml-файла, как указано выше, для кнопок click.

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

     } 
    }); 
Смежные вопросы