#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. Я собираюсь в свой университет на несколько лекций, я хотел бы вернуться к вам и попытаться реализовать это правильно..