gpt4 book ai didi

android - 在 Android Xamarin 中的 Activity 开始时更改可绘制的切换按钮

转载 作者:行者123 更新时间:2023-11-29 02:36:52 25 4
gpt4 key购买 nike

enter image description here

我制作了两个切换按钮,并编辑了切换按钮样式以在状态更改时更改切换图像,如上面的代码

这是我的切换按钮

<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" />

和这个drawable/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>

并且我使用静态 bool 变量来存储全局切换状态,以便在另一个 Activity 中再次使用它所以我想要的是在不单击切换按钮的情况下更改创建的 Activity 上的可绘制按钮我试过这段代码

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

但它看起来像再次重新检查切换按钮我只需要更改可绘制对象

最佳答案

我通过用 Button 替换 ToggleButton 来解决这个问题,并从 Activity 类中以编程方式更改按钮图像,并为按钮状态创建静态变量,所以我的代码变成了这样

 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);
}

而且效果很好!!

关于android - 在 Android Xamarin 中的 Activity 开始时更改可绘制的切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com