崔峰鸣 2017-03-16 10:10 采纳率: 33.3%
浏览 1504

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);

}

}

图片说明

图片说明

  • 写回答

2条回答 默认 最新

  • 鼎鼎浩 2017-03-16 11:49
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)