Java 主持人(姓名); // mprojects.setImagePath(替换); 下载(mprojects.getImagePath(),holder.image); } 返回儿童; } @凌驾 公共void下载(字符串url、图像视图){ //TODO自动生成的方法存根 BitmapDownloaderTask任务=新建BitmapDownloaderTask(视图); task.execute(url); } 私有类视窗持有者{ 图像视图图像; 文本视图名称; 复选框; } } /** *如果存在选定项目,则获取微调器 */ 公共静态列表getSpinnerData(上下文上下文,列表数据){ SharedReferences shared=getPreferences(上下文); for(MessageProject-mproject:data){ Log.d(标记“PROEJCT”+mproject.getId()+“=”+shared.getBoolean(“消息已选中”+mproject.getId(),false)); setCheck(shared.getBoolean(“message_is_checked”+mproject.getId(),false)); } 返回数据; } /** *将微调器保存到选定的项目中 */ 公共静态void saveSpinnerData(上下文上下文、MessageProject数据){ SharedReferences shared=getPreferences(上下文); SharedReferences.Editor=shared.edit(); if(shared.getLong(“project\u id\u”+data.getId(),-1)!=-1){ putBoolean(“message_is_checked_”+data.getId(),data.isCheck()); }否则{ putLong(“project_id_”+data.getId(),data.getId()); } commit(); }
“这是微调器和复选框的图像。当我按下回键时,我遇到了问题。当我再次按下微调器时,它会被调用两次。现在,即使它被选中,数据也将为false,因为setOnCheckChangeListener onCheckChanged不仅会被调用一次,还会被调用两次。这是如何发生的?…可能的解决方案是什么?”Java 主持人(姓名); // mprojects.setImagePath(替换); 下载(mprojects.getImagePath(),holder.image); } 返回儿童; } @凌驾 公共void下载(字符串url、图像视图){ //TODO自动生成的方法存根 BitmapDownloaderTask任务=新建BitmapDownloaderTask(视图); task.execute(url); } 私有类视窗持有者{ 图像视图图像; 文本视图名称; 复选框; } } /** *如果存在选定项目,则获取微调器 */ 公共静态列表getSpinnerData(上下文上下文,列表数据){ SharedReferences shared=getPreferences(上下文); for(MessageProject-mproject:data){ Log.d(标记“PROEJCT”+mproject.getId()+“=”+shared.getBoolean(“消息已选中”+mproject.getId(),false)); setCheck(shared.getBoolean(“message_is_checked”+mproject.getId(),false)); } 返回数据; } /** *将微调器保存到选定的项目中 */ 公共静态void saveSpinnerData(上下文上下文、MessageProject数据){ SharedReferences shared=getPreferences(上下文); SharedReferences.Editor=shared.edit(); if(shared.getLong(“project\u id\u”+data.getId(),-1)!=-1){ putBoolean(“message_is_checked_”+data.getId(),data.isCheck()); }否则{ putLong(“project_id_”+data.getId(),data.getId()); } commit(); },java,android,Java,Android,“这是微调器和复选框的图像。当我按下回键时,我遇到了问题。当我再次按下微调器时,它会被调用两次。现在,即使它被选中,数据也将为false,因为setOnCheckChangeListener onCheckChanged不仅会被调用一次,还会被调用两次。这是如何发生的?…可能的解决方案是什么?” 我现在很难解决问题。太糟糕了。解决了在选中更改列表时删除更改为onClickListener 因为setCheck会在CheckChangedListener上激发,愚蠢的我 h
我现在很难解决问题。太糟糕了。解决了在选中更改列表时删除更改为onClickListener 因为setCheck会在CheckChangedListener上激发,愚蠢的我
holder.checkBox.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.d(TAG, arg0.toString());
Log.v(TAG, "FROM " + mprojects.isCheck() + " TO " + !mprojects.isCheck() );
mprojects.setCheck(!mprojects.isCheck());
Log.d(TAG, "Project " + mprojects.getId());
saveSpinnerData(inflater.getContext() , mprojects);
}
});
尽管如此,我还是非常感谢您的回答,因为我非常想使用oncheckchangelistener
这太奇怪了,因为我按下了微调器而不是复选框,但一旦“更改的侦听器”启动,它仍然会启动
holder.checkBox.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.d(TAG, arg0.toString());
Log.v(TAG, "FROM " + mprojects.isCheck() + " TO " + !mprojects.isCheck() );
mprojects.setCheck(!mprojects.isCheck());
Log.d(TAG, "Project " + mprojects.getId());
saveSpinnerData(inflater.getContext() , mprojects);
}
});