簡體   English   中英

按下時如何切換按鈕的狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM