2017-09-30 43 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); 
} 

,它工作得很好!