2015-08-05 2 views
0

В настоящее время у меня есть звуковая кнопка, и я хотел бы менять ее фон каждый раз, когда она выбрана и нажата (я развиваюсь на паре Android очки, поэтому, когда кнопка выбрана, она не нажата, поэтому два разных состояния).Как установить фон кнопки и назад в соответствии с выбранным состоянием не нажато состояние

Я использовал файл XML, чтобы изменить кнопку фона при выборе до сих пор:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/no_music" 
     android:state_selected="true" /> 
    <item android:drawable="@drawable/no_music" 
     android:state_focused="true" /> 
    <item android:drawable="@drawable/music" /> 
</selector> 

И вместе в onClick метод кнопки, я поставил кнопку фона в зависимости от состояния:

public void musicPlay(View view) { 
    Button music = (Button) findViewById(R.id.music); 
     if(isPlaying) { 
      music.setBackgroundResource(R.drawable.no_music); 
      MusicManager.release() 
     }else{ 
      music.setBackgroundResource(R.drawable.music); 
      MusicManager.start(this); 
     } 
    isPlaying = !isPlaying; 
} 

Когда я нажимаю кнопку, каждый раз она меняет свой фон. Но когда я его выберу, он только изменит фон один раз. Есть ли какой-либо метод, который я могу использовать, чтобы сделать выбранное состояние таким же, как нажатый?

спасибо.

+1

Вы могли бы добавить код в свой код и написать свой xml? Вы использовали селектор? – alltooconfusingthereforesleep

ответ

0

ли это в вашем коде:

public void musicPlay(View view) { 
    Button music = (Button) findViewById(R.id.music); 
     if(isPlaying) { 
      music.setPressed(true); 
      MusicManager.release() 
     }else{ 
      music.setPressed(false); 
      MusicManager.start(this); 
     } 
    isPlaying = !isPlaying; 
} 

Также в вашем XML:

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/no_music" android:state_selected="true"/> 
     <item android:drawable="@drawable/no_music" android:state_pressed="true"/> 
     <item android:drawable="@drawable/music"/> 
    </selector> 
+0

Спасибо! Это сработало! – user2964275

+0

, если мой ответ помог вам, отметьте его как правильно или увеличьте его. благодаря – Aakash

0

вы могли бы сделать Drawable ресурс как ресурс для кнопки:

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true"> 
<item android:drawable="@drawable/musicon" android:state_checked="false"/> 
<item android:drawable="@drawable/musicoff" android:state_checked="true" /> 
<item android:drawable="@drawable/default" /> 

что-то, как это должно работать. удачи.

0

Установите кнопку нажатой свойство true, а затем проверить, если файл кнопки background.xml выбрал пункт.