首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwitchCompat setOnCheckedChangeListener()不适用于android?

SwitchCompat setOnCheckedChangeListener()不适用于android?
EN

Stack Overflow用户
提问于 2017-07-24 05:36:44
回答 1查看 1.3K关注 0票数 0

我有一个应用程序,在其中我使用SwitchCompat来启用和禁用功能。为此,我使用setOnCheckedChangeListener()启用和禁用功能,我使用isChecked检查开关是否已启用或禁用。条件很好,但在我的条件下,它永远不会落在其他条件下。

代码:-

代码语言:javascript
复制
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();                                                                             
        }                                                                                                        
                                                                                                                 
    }
};
EN

回答 1

Stack Overflow用户

发布于 2017-07-24 05:48:33

做些改变。1.使用线路

代码语言:javascript
复制
 listViewHolder.switchCompat.setChecked(false);    

而不是

代码语言:javascript
复制
  listViewHolder.switchCompat.setChecked(isChecked);    
  1. 在其他部分,您也错过了设置按钮的状态,因此在其他部分中添加行。 listViewHolder.switchCompat.setChecked(isChecked);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45273260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档