私のAndroidアプリには、スイッチウィジェットがあり、oncheckchangeリスナーを次のように設定しています
main.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
if (no_internet()) {
// cancel click...
return;
}
if (image.getApproved()) {
if (arg1) {
for(FishImage image : imagestoshow) {
image.setIsMain(false);
}
}
image.setIsMain(arg1);
}
}
});
基本的にインターネットがあれば何とかしますが、なければスイッチへの変更をキャンセルしたいです。現時点では、スイッチの状態が変更されます。コードで状態を変更しようとしても、このコードはアンドロイドが状態を変更する前に発生するため、効果はありません。
スイッチをキャンセルする方法が必要なので、それを行うと、クリックしなかったかのようになります。