我有一个应用程序,在其中我使用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("").setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@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();
}
}
};发布于 2017-07-24 05:48:33
做些改变。1.使用线路
listViewHolder.switchCompat.setChecked(false); 而不是
listViewHolder.switchCompat.setChecked(isChecked); https://stackoverflow.com/questions/45273260
复制相似问题