Jon*_*ona 10
我多次使用的最好和最干净的解决方案是检查View.isPressed().这是有道理的,因为用户在触发回调时将按下Switch.
private Switch.OnCheckedChangeListener mOnSwitch = new Switch.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (!buttonView.isPressed())
{
// Not from user!
return;
}
// Handle user check change
}
};
Run Code Online (Sandbox Code Playgroud)
小智 7
我曾经遇到过这样的问题.最后我删除了OnCheckedChangedListener并用onClickListener替换它.在onclick方法中我使用c.IsChecked().
我的猜测是,只要用户通过代码(通过c.setchecked(boolean))更改了复选框状态,android就会调用onCheckChange,
在你的情况下,c .setchecked(boolean)方法由android内部调用以恢复UI状态.
希望它会有所帮助.
Mr_*_*Hmp -4
尝试在应用程序标记的清单文件中添加以下行:
<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation">
Run Code Online (Sandbox Code Playgroud)
另请阅读此内容,这将解决您的问题。
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |