[英]How to switch the state of a button when pressed
我是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>
如何編輯此代碼,以便在按下按鈕時它保持該狀態,直到再次單擊它,然后再恢復到之前的狀態?
您應該將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>
嘗試在你的java類中修復它。 為按鈕選擇時和未選中按鈕時添加標記,然后在選擇按鈕或打開窗口時添加按下狀態的圖像,並在關閉時添加圖像,以便在未按下時添加圖像。
如果你選擇以編程方式進行,你可以這樣做,
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;
}
}
});
也許有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.