java.lang.ClassCastException

图片说明

public class GroupFragment extends Fragment {

private static RecyclerView recyclerView;

public String json = null;

private ArrayList<ItemObject> itemObjectArrayList;

private LinearLayoutManager linearLayoutManager;
private GroupAdapter groupAdapter;

private View listTouchInterceptor;
private View detailsLayout;
private UnfoldableView unfoldableView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_group, null);

    recyclerView = (RecyclerView) view.findViewById(R.id.group_list_view);
    linearLayoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(linearLayoutManager);

    listTouchInterceptor = (View) view.findViewById(R.id.touch_interceptor_view);
    listTouchInterceptor.setClickable(false);

    detailsLayout = (View) view.findViewById(R.id.details_layout);
    detailsLayout.setVisibility(View.INVISIBLE);

    unfoldableView = (UnfoldableView) view.findViewById(R.id.unfoldable_view);

    Bitmap glance = BitmapFactory.decodeResource(getResources(), R.drawable.unfold_glance);
    unfoldableView.setFoldShading(new GlanceFoldShading(glance));

    unfoldableView.setOnFoldingListener(new UnfoldableView.SimpleFoldingListener() {

        @Override
        public void onUnfolding(UnfoldableView unfoldableView) {
            listTouchInterceptor.setClickable(true);
            detailsLayout.setVisibility(View.VISIBLE);
            page_up.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onUnfolded(UnfoldableView unfoldableView) {
            listTouchInterceptor.setClickable(false);
        }

        @Override
        public void onFoldingBack(UnfoldableView unfoldableView) {
            listTouchInterceptor.setClickable(true);
        }

        @Override
        public void onFoldedBack(UnfoldableView unfoldableView) {
            listTouchInterceptor.setClickable(false);
            detailsLayout.setVisibility(View.INVISIBLE);
            page_up.setVisibility(View.VISIBLE);
        }

    });

    try {
        json = HttpUtil.getRequest("http://music.svner.com/cuiyunlong/feb_three_list.html");
    } catch (Exception e) {
        e.printStackTrace();
    }

    JSONObject jObject = null;
    int result = 0;
    try {
        jObject = new JSONObject(json);
        result = jObject.getInt("result");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    if (result == 1) {
        JSONObject jsonObject;
        itemObjectArrayList = new ArrayList<ItemObject>();
        try {
            jsonObject = new JSONObject(json);
            JSONArray jsonArray = jsonObject.getJSONArray("data");
            for (int i = 0; i < jsonArray.length(); i++) {
                jsonObject = jsonArray.getJSONObject(i);
                ItemObject itemObject = new ItemObject();
                itemObject.group_image = jsonObject.getString("group_image");
                itemObject.group_top = jsonObject.getString("group_top");
                itemObject.group_bottom = jsonObject.getString("group_bottom");
                itemObject.group_right = jsonObject.getString("group_right");
                itemObjectArrayList.add(itemObject);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        groupAdapter = new GroupAdapter(getActivity(), itemObjectArrayList);
        recyclerView.setAdapter(groupAdapter);
    }

    groupAdapter.setOnItemClickListener(new GroupAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
        unfoldableView.unfold(view, detailsLayout);
        }
    });

    public class ItemObject{
    public String group_image;
    public String group_top;
    public String group_bottom;
    public String group_right;
}

}

public class GroupAdapter extends RecyclerView.Adapter {

private final Context context;
private final ArrayList<GroupFragment.ItemObject> itemObjectArrayList;

public GroupAdapter(Context context, ArrayList<GroupFragment.ItemObject> itemObjectArrayList) {
    this.context = context;
    this.itemObjectArrayList = itemObjectArrayList;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new GroupViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.group_list_item, null));
}

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
    final GroupFragment.ItemObject itemObject = itemObjectArrayList.get(position%(itemObjectArrayList.size()));
    final GroupViewHolder groupViewHolder = (GroupViewHolder) holder;

    if (mOnItemClickListener != null){
        groupViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mOnItemClickListener.onItemClick(groupViewHolder.itemView, position);
            }
        });
    }

    try {
        URL url = new URL(itemObject.group_image);
        Utils.onLoadImage(url, new Utils.OnLoadImageListener() {
            @Override
            public void OnLoadImage(Bitmap bitmap, String bitmapPath) {
                if (bitmap != null) {
                    BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
                    groupViewHolder.group_image.setImageDrawable(bitmapDrawable);
                }
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }

    groupViewHolder.group_top.setText(itemObject.group_top);
    groupViewHolder.group_bottom.setText(itemObject.group_bottom);
    groupViewHolder.group_right.setText(itemObject.group_right);
}

@Override
public int getItemCount() {
    return itemObjectArrayList.size();
}

public interface OnItemClickListener{
    void onItemClick(View view, int position);
}

private OnItemClickListener mOnItemClickListener;

public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
    this.mOnItemClickListener = mOnItemClickListener;
}

}

public class GroupViewHolder extends RecyclerView.ViewHolder {

public ImageView group_image;
public TextView group_top;
public TextView group_bottom;
public TextView group_right;

public GroupViewHolder(View view) {
    super(view);
    group_image = (ImageView) view.findViewById(R.id.group_image);
    group_top = (TextView) view.findViewById(R.id.group_top);
    group_bottom = (TextView) view.findViewById(R.id.group_bottom);
    group_right = (TextView) view.findViewById(R.id.group_right);

}

}

图片说明

图片说明

强制转换错误,onclick方法里获取的和强转的不是同一对象类型

http://jingyan.baidu.com/article/e2284b2b7278fce2e7118d6f.html这个上面说的蛮清楚的