android开发中switch在切换开/关状态时,先弹出一个dialog(确认/取消)以让用户确认是不是切换开/关状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发中switch在切换开/关状态时,先弹出一个dialog(确认/取消)以让用户确认是不是切换开/关状态相关的知识,希望对你有一定的参考价值。
要实现这种逻辑,方式实在太多了,最简单的就是switch注册点击事件(不叫你注册onCheckedChanged事件是因为你设置setChecked的时候,又会触发onCheckedChanged)
然后在方法里先弹出一个alertDialog
确定后设置switch.setChecked(true/false) 参考技术A 在switch的触发事件中添加的对话框就好了追问
在onCheckedChanged中添加对话框的话,一旦取消操作,将会再一次触发onCheckedChanged
追答你怎么知道再一次触发了?
追问试过了呀
追答就是说这个提示框一直弹出对吗???
如何在android中更改切换按钮颜色
我有这个Switchbutton
<Switch
android:id="@+id/switch"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:text="some text"
android:textColor="@color/foreground" />
当从默认选项到我的颜色时,如何更改按钮的颜色?
更新:
我试过这个解决方案:Change "on" color of a Switch
但是当我从Switch更改为SwitchCompat时,我看不到任何Switch Buttons
仅供参考我使用<style name="AppTheme" parent="Theme.Leanback">
答案
我通过编程方式更改开关按钮的颜色来解决问题
int myColor = getResources().getColor(R.color.myColor);
int defaultColor = getResources().getColor(R.color.defaultColor);
public void changeSwitch(View view) {
boolean checked = ((Switch) view).isChecked();
if (checked) {
((Switch) view).getThumbDrawable().setColorFilter(myColor,
PorterDuff.Mode.MULTIPLY);
((Switch) view).getTrackDrawable().setColorFilter(myColor,
PorterDuff.Mode.MULTIPLY);
} else {
((Switch) view).getThumbDrawable().setColorFilter(defaultColor,
PorterDuff.Mode.MULTIPLY);
((Switch) view).getTrackDrawable().setColorFilter(defaultColor,
PorterDuff.Mode.MULTIPLY);
}
}
以上是关于android开发中switch在切换开/关状态时,先弹出一个dialog(确认/取消)以让用户确认是不是切换开/关状态的主要内容,如果未能解决你的问题,请参考以下文章