2017-07-25 1 views
0

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(); 

      } 
     } 


    }); 

Antwort

0

if (isCheck.equals ("0")) {

listViewHolder.switchCompat.setChecked (true); }

Zusätzlich dazu ... in XML standardmäßig falsch gesetzt.

+0

isCheck ist boolesch, dann wenn (isCheck.equal) nicht funktioniert – Raghav

+0

Können Sie dies überprüfen mit isCheck = listStorage.get (position) .getStatus(). EqualsIgnoreCase ("0"); –

+0

Entfernen der! von dieser Linie. –

Verwandte Themen