2017-07-24 91 views
0

我有一個應用程序,我使用SwitchCompat來啓用和禁用功能。我正在使用setOnCheckedChangeListener()來啓用和禁用功能爲此,我正在使用isChecked來檢查開關是啓用還是禁用。條件工作正常,但在我的情況下,它永遠不會落在其他條件。SwitchCompat setOnCheckedChangeListener()在android中不工作?

代碼: -

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

我覺得問題是你做了isCheck變量final和final變量初始化一次,其值不會再改變,所以刪除final再試一次。 –

+0

可能重複的[SwitchCompat按鈕不工作在Android?](https://stackoverflow.com/questions/45274385/switchcompat-button-is-not-working-in-android) – Sufian

回答

0

進行更改。 1.使用線

listViewHolder.switchCompat.setChecked(false);  

代替

listViewHolder.switchCompat.setChecked(isChecked);  
在else部分也,你已經錯過了設置按鈕的狀態
  • 所以加在其他部分的線。

    listViewHolder.switchCompat.setChecked(isChecked);

  • +0

    什麼關於})。setNegativeButton(「否」,新DialogInterface.OnClickListener(){ @覆蓋 公共無效的onClick(DialogInterface對話,詮釋其){ listViewHolder.switchCompat.setChecked(器isChecked);} } )顯示(); – Raghav

    相關問題