2017-09-30 87 views
1

enter image description here更改切換按鈕可繪製在Android的Xamarin

開始我做了兩個切換按鈕,我編輯的切換按鈕樣式以更改切換圖像上的狀態變化,如上面的代碼

這是我的切換按鈕

<ToggleButton 
       android:id="@+id/speaker" 
       android:layout_width="25dip" 
       android:layout_height="25dip" 
       android:layout_margin="10dp" 
       android:textOn="" 
       android:textOff="" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:layout_centerVertical="true" 
       android:background="@drawable/speaker_btn" /> 

抽拉/ speeker_btn.xml

<?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/speaker_on" 
     android:state_checked="true" /> 
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/speaker_off" 
     android:state_checked="false"/> 

</selector> 
0123使用靜態布爾變量來存儲切換狀態全局的另一個動作 所以,我想再次使用它

而IM改變上創建活動按鈕繪製不單擊切換 我想這碼

speakerToggle = view.FindViewById<ToggleButton>(Resource.Id.speaker); 
if(speaker_btn_checked == true){ 
     speakerToggle.checked = true; 
} 

但它看起來像複檢切換按鈕再次我只需要通過按鈕更換切換按鈕編程方式從活動類改變繪製

回答

0

我解決了這個問題,並更改按鈕圖像,並創建了靜態變量的按鈕狀態,所以我的代碼變得像這樣

Button speakerToggle = view.FindViewById<Button>(Resource.Id.speaker); 

    speakerToggle.Click += delegate{   
     if (am.SpeakerphoneOn == false) 
     { 
     speakerToggle.SetBackgroundResource(Resource.Drawable.speaker_on); 
     }else{ 
     speakerToggle.SetBackgroundResource(Resource.Drawable.speaker_off); 
     } 
    }; 

而且的onCreate方法裏面我創造了這個

if (am.SpeakerphoneOn == true){ 
    speakerToggle.SetBackgroundResource(Resource.Drawable.speaker_on); 
}else{ 
    speakerToggle.SetBackgroundResource(Resource.Drawable.speaker_off); 
} 

,它工作得很好!