0

我是 android 新手并使用以下代码,我正在尝试设置一个默认图像按钮,当单击该按钮时切换到打开状态直到再次按下或点击屏幕上的其他任何位置,以便与打开状态关联的弹出窗口消失. 这是代码:java代码:

private void setOnclickListeners(View view){
        ImageButton button = (ImageButton) view.findViewById(R.id.menu_button);
        button.setOnClickListener(this);
    }

我想将此代码连接到以下触发和关闭状态:

<ImageButton
            android:id="@+id/menu_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@android:color/transparent"
            android:paddingRight="8dp"
            android:src="@drawable/menu_btn" />

这是 xml 类的 menu_btn 代码:

<?xml version="1.0" encoding="utf-8"?>


<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/menu_on"/>
<item android:state_pressed="true" android:drawable="@drawable/menu_on" />
<item android:drawable="@drawable/menu_off" />  
</selector>

任何线索如何去做?蚂蚁帮助表示赞赏。谢谢!贾斯汀

4

1 回答 1

1

您可能想要检查ToggleButton(或任何子类Checkable)您的实现,然后将其状态设置为这样的,

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

然后在您的 Java 代码上,获取您的ToggleButton(or ) 的实例并根据您的操作Checkable更新- 方法。setChecked

于 2013-05-21T06:00:43.627 回答