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这个上面说的蛮清楚的