我是android的新手并尝试了一些功能。我有一个xml文件,在按下按钮时调用:
<?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/button_pressed"/>
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:drawable="@drawable/btn_not_pressed" />
</selector>
如何编辑此代码,以便在按下某个按钮时,它会一直处于该状态,直到再次单击它,然后再恢复到之前的状态?
答案 0 :(得分:1)
您应该按照existing answer
中的说明将ToggleButton与选中的背景结合使用<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/selected_image"
android:state_checked="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/unselected_image"
android:state_checked="false"/>
</selector>
答案 1 :(得分:1)
尝试在java类中修复它。为按钮选择时和未选中按钮时添加标记,然后在选择按钮或打开窗口时添加按下状态的图像,并在关闭时添加图像,以便在未按下时添加图像。
答案 2 :(得分:0)
如果您选择以编程方式执行此操作,则可以这样做,
boolean flag = true;
Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(flag){
button.setBackgroundResource(R.drawable.clickedonce);
flag = false;
}else{
button.setBackgroundResource(R.drawable.clickedtwice);
flag = true;
}
}
});
也许有帮助。