向ToggleButton添加功能,

时间:2011-10-04 18:17:11

标签: android togglebutton

我正在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 :(得分: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.
        }
    });
}

对于完整功能,您可能必须在执行任何操作之前检查按钮的已检查状态。