Добавление функциональности в ToggleButton,

#android #togglebutton

#Android #кнопка переключения

Вопрос:

Я создаю графическое приложение для Android. Я должен сделать кнопку для включения и отключения звука приложения, что довольно распространено среди приложений. Я на самом деле не могу найти правильный способ сделать это. Мне удалось переключить изображение с помощью XML-файлов, но я все еще не понимаю, как добавить к ним функциональность.

код приведен ниже.. Основной макет

 <Button android:id="@ id/InfoButton" android:background="@drawable/infoiconlow" android:layout_gravity="top|left" android:layout_height="40dp" android:layout_width="30dp" android:layout_marginTop="2dp" android:layout_marginLeft="125dp"></Button>
    <Button android:layout_gravity="top|right" android:layout_width="wrap_content" android:id="@ id/ForwardButton" android:layout_height="wrap_content" android:background="@drawable/forwardbuttonlow" android:layout_marginRight="10dp" android:layout_marginTop="-3dp"></Button>
    <ImageView android:src="@drawable/selectthescenetitle" android:id="@ id/imageView3" android:layout_gravity="top|center" android:layout_marginLeft="15dp" android:layout_marginTop="-3dp" android:layout_width="219dp" android:layout_height="wrap_content"></ImageView>
    <ToggleButton android:id="@ id/MusicButton" android:background="@drawable/shufflebutton" android:textOn="" android:textOff="" android:layout_gravity="top|left" android:layout_width="30dp" android:layout_height="40dp" android:layout_marginTop="2dp" android:layout_marginLeft="84dp" android:clickable="true"> 
    </ToggleButton>
  

sufflebutton.xml

 <?xml version="1.0" encoding="utf-8"?>
<layer-list 
  xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/shufflebuttonimage" />   
</layer-list>
  

shufflebuttonimage.xml

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/musiconiconlow" android:state_checked="false" />
    <item android:drawable="@drawable/musicofficonlow"/>
</selector>
  

Изображение переключается, но если я перехожу туда и обратно, состояние возвращается к своему значению по умолчанию, и я не могу добавить функциональность к переключателю, например, включение и отключение звука. Может кто-нибудь, пожалуйста, помочь мне в решении этой проблемы, это сводит меня с ума..

Спасибо 🙂

Комментарии:

1. Вы имеете в виду, что не можете понять, как реагировать на его события изменения состояния? Используйте setOnCheckChangedListener

2. я имею в виду, что я хочу, чтобы состояние моей кнопки переключения зависело от звука, т.Е. Включено или отключено, плюс, когда я нажимаю на кнопку, она также устанавливает, переключает состояние кнопки… не могли бы вы немного рассказать мне об этом..

Ответ №1:

Обычно я реализую такой код:

 private void initialise(final Context context)
{       
    final ToggleButton music = (ToggleButton)findViewById(R.id.MusicButton);


    music.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {               
            music.setChecked(true);             
            // Do other stuff like play the music.
        }
    });
}
  

Для полной функциональности вам, вероятно, придется проверить проверенное состояние кнопки, прежде чем что-либо делать.

Комментарии:

1. Я собираюсь в свой университет на несколько лекций, я хотел бы вернуться к вам и попытаться реализовать это правильно..