我正在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>
图像切换但是如果我来回走动,状态恢复其默认值,并且我无法向切换添加功能,例如启用和禁用声音。任何人都可以帮助我解决这个问题,它让我疯狂..
谢谢:)
答案 0 :(得分:0)
我通常会实现这样的代码:
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.
}
});
}
对于完整功能,您可能必须在执行任何操作之前检查按钮的已检查状态。