Добавление функциональности в ToggleButton, - PullRequest
0 голосов
/ 04 октября 2011

Я делаю графическое приложение на 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 Ответ

0 голосов
/ 05 октября 2011

Я обычно реализую код наподобие этого:

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

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

...