我在我的应用程序中使用一个复选框作为按钮打开或关闭某些内容.但是操作(从网络加载文件)是在异步任务中完成的,所以我不希望检查在async任务成功完成之前发生,就像这样
protected void onPostExecute(String result) {
if(result==null) {
return;
}
// loaded ok, turn on check mark
MainActivity.mMp3Cb.setChecked(true);
Run Code Online (Sandbox Code Playgroud)
问题是,再次setChecked(true)引发OnCheckedChangeListener就像是用户输入一样
有办法避免这种情况吗?或至少检测到它onCheckedChanged?
谢谢
Flo*_*ian 12
您可以使用isPressed()按钮视图对象的方法.以下是Android中切换按钮的示例.buttonView.isPressed()仅当用户单击按钮时才会为true.
@Override
public synchronized void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.isPressed()) {
// human input
} else {
// result of setChecked(boolean)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1573 次 |
| 最近记录: |