我有一个应用程序,其中我使用SwitchCompat启用和禁用功能。我正在使用setOnCheckedChangeListener()来启用和禁用功能为此,我使用isChecked
来检查是启用还是禁用了交换机。条件工作正常,但在我的情况下它永远不会落在其他条件。
代码: -
listViewHolder.switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
if (isChecked) {
new AlertDialog.Builder(mContext, R.style.AppCompatAlertDialogStyle).setTitle("Warning").setMessage("
@Override
public void onClick(DialogInterface dialog, int which) {
//Adding items in Dataset
AllAppList appList = listStorage.get(position);
whiteListModel.setName(appList.getName());
whiteListModel.setPackName(appList.getPackName());
existingDataSet.add(whiteListModel);
saveScoreListToSharedpreference(existingDataSet);
//Notifying adapter data has been changed.....
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(false);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listViewHolder.switchCompat.setChecked(false);
}
}).show();
} else {
Toast.makeText(mContext, "Removed", Toast.LENGTH_LONG).show();
existingDataSet.remove(position);
saveScoreListToSharedpreference(existingDataSet);
notifyDataSetChanged();
}
}
答案 0 :(得分:0)
进行更改。 1.使用
行 listViewHolder.switchCompat.setChecked(false);
而不是
listViewHolder.switchCompat.setChecked(isChecked);
在else部分,你也错过了设置按钮的状态 所以在else部分添加一行。
listViewHolder.switchCompat.setChecked(器isChecked);