Ich habe eine App, in der ich eine Liste mit einigen Daten in SQLite-Datenbank gespeichert habe. Listview enthält auch switchCompat, wenn ich den Schalter am Index von listview aktiviere und dann den Status auf "0" setze und wenn ich das Element deaktiviere und dann auf "1" setze. Wenn der Status jedoch auf "0" gesetzt ist, aktiviert er den Schalter und wenn der Status auf "1" gesetzt ist, wird der Schalter deaktiviert. Bitte helfen.Wie SwitchCompat aktiviert und deaktiviert wird, akkordermäßig zum Datenbankstatus?
Code: -
listViewHolder.switchCompat.setOnCheckedChangeListener(null);
boolean isCheck;
isCheck = !listStorage.get(position).getStatus().equalsIgnoreCase("0");
listViewHolder.switchCompat.setChecked(isCheck);
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("You want to whiteList this application?").setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int pos) {
//Adding items in Dataset
CBlackListModel appList = listStorage.get(position);
String appName = appList.getName();
String appPackage = appList.getPackName();
byte[] appIcon = appList.getImage();
String appStatus = "1";
appListDataBase.updateApp(appName,appPackage,appIcon,appStatus);
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(isChecked);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(isChecked);
}
}).show();
} else {
CBlackListModel model = listStorage.get(position);
String appName = model.getName();
String appPackage = model.getPackName();
byte[] appIcon = model.getImage();
String appStatus = "1";
appListDataBase.updateApp(appName,appPackage,appIcon,appStatus);
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(false);
Toast.makeText(mContext, "Removed", Toast.LENGTH_LONG).show();
}
}
});
isCheck ist boolesch, dann wenn (isCheck.equal) nicht funktioniert – Raghav
Können Sie dies überprüfen mit isCheck = listStorage.get (position) .getStatus(). EqualsIgnoreCase ("0"); –
Entfernen der! von dieser Linie. –