我有含有检查应该接受的RecyclerAdapter
的getAdapterPosition()
当CheckBox
一个RecyclerView
和检查的状态(布尔) CheckBox
作为键和值在hashmap'.getAdapterPosition() is converted to Integer object.When the
CheckBox`被检查它会给出以下错误。
错误:不包括
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map$Entry
at com.example.jobinsabu.destination.TourPlacesRecyclerAdapter$RecyclerHolder$1.onChange(TourPlacesRecyclerAdapter.java:89)
at com.github.lguipeng.library.animcheckbox.AnimCheckBox.setChecked(AnimCheckBox.java:291)
at com.github.lguipeng.library.animcheckbox.AnimCheckBox.setChecked(AnimCheckBox.java:264)
at com.github.lguipeng.library.animcheckbox.AnimCheckBox$1.onClick(AnimCheckBox.java:74)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
TourPlacesRecyclerAdapter.java:(Full Java类)
public class RecyclerHolder extends RecyclerView.ViewHolder{
HashMap<Integer,Boolean> hashMap;
AnimCheckBox checkBox;
public RecyclerHolder(final View itemView) {
super(itemView);
checkBox=(AnimCheckBox) itemView.findViewById(R.id.checkBox);
checkBox.setChecked(false);
checkBox.setOnCheckedChangeListener(new AnimCheckBox.OnCheckedChangeListener() {
@Override
public void onChange(boolean checked) {
if(checkBox.isChecked()){
boolean check=true;
clicked_position=getAdapterPosition();
i=new Integer(clicked_position);
hashMap.put(i, check);
Toast.makeText(context,"You checked item:"+getAdapterPosition(),Toast.LENGTH_SHORT).show();
Set s=hashMap.keySet();
Iterator i=s.iterator();
while (i.hasNext()){
Map.Entry entry=(Map.Entry)i.next();
Log.e("Position"+entry.getKey().toString(),"Status"+entry.getValue().toString());
}
SharedPreferences sharedPreferences=context.getSharedPreferences("Main",Context.MODE_PRIVATE);
bt_click_status=sharedPreferences.getBoolean("Btnheck",false);
Log.e("Entered",Boolean.toString(bt_click_status));
}
}
});
}}
尝试更换hashmap.keySet()与hashMap.entrySet()。它应该解决我想的问题。 – Bhargav