package com.wm.remusic.fragmentnet; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; import com.wm.remusic.R; import com.wm.remusic.activity.AlbumsDetailActivity; import com.wm.remusic.fragment.AttachFragment; import com.wm.remusic.json.SearchAlbumInfo; import com.wm.remusic.widget.DividerItemDecoration; import java.util.ArrayList; import java.util.List; /** * Created by wm on 2016/5/18. */ public class SearchAlbumFragment extends AttachFragment { private LinearLayoutManager layoutManager; private List<SearchAlbumInfo> mAlbumList = new ArrayList<>(); private AlbumAdapter mAdapter; private RecyclerView recyclerView; private RecyclerView.ItemDecoration itemDecoration; public static SearchAlbumFragment newInstance(ArrayList<SearchAlbumInfo> list) { SearchAlbumFragment fragment = new SearchAlbumFragment(); Bundle bundle = new Bundle(); bundle.putParcelableArrayList("searchAlbum", list); fragment.setArguments(bundle); return fragment; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.recylerview, container, false); recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview); layoutManager = new LinearLayoutManager(mContext); recyclerView.setLayoutManager(layoutManager); mAdapter = new AlbumAdapter(null); recyclerView.setAdapter(mAdapter); recyclerView.setHasFixedSize(true); setItemDecoration(); loadAlbums(); return view; } //设置分割线 private void setItemDecoration() { itemDecoration = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL_LIST); recyclerView.addItemDecoration(itemDecoration); } private void loadAlbums() { if (mContext == null) { return; } if (getArguments() != null) { mAlbumList = getArguments().getParcelableArrayList("searchAlbum"); mAdapter = new AlbumAdapter(mAlbumList); recyclerView.setAdapter(mAdapter); setItemDecoration(); } } public class AlbumAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<SearchAlbumInfo> mList; public AlbumAdapter(List<SearchAlbumInfo> list) { mList = list; } //更新adpter的数据 public void updateDataSet(List<SearchAlbumInfo> list) { this.mList = list; } //创建新View,被LayoutManager调用 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { return new ListItemViewHolder(LayoutInflater.from(viewGroup.getContext()). inflate(R.layout.recyclerview_common_item, viewGroup, false)); } //将数据与界面进行绑定 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { SearchAlbumInfo model = mList.get(position); ((ListItemViewHolder) holder).title.setText(model.getTitle()); ((ListItemViewHolder) holder).title2.setText(model.getAuthor()); ((ListItemViewHolder) holder).draweeView.setImageURI(Uri.parse(model.getPic_small()));//要加“” 弹出println needs a message } //条目数量 @Override public int getItemCount() { return mList == null ? 0 : mList.size(); } //ViewHolder public class ListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { ImageView moreOverflow; SimpleDraweeView draweeView; TextView title, title2; ListItemViewHolder(View view) { super(view); this.title = (TextView) view.findViewById(R.id.viewpager_list_toptext); this.title2 = (TextView) view.findViewById(R.id.viewpager_list_bottom_text); this.draweeView = (SimpleDraweeView) view.findViewById(R.id.viewpager_list_img); this.moreOverflow = (ImageView) view.findViewById(R.id.viewpager_list_button); view.setOnClickListener(this); } @Override public void onClick(View v) { SearchAlbumInfo model = mList.get(getAdapterPosition()); Intent intent = new Intent(mContext, AlbumsDetailActivity.class); intent.putExtra("albumid", model.getAlbum_id()); intent.putExtra("albumart", model.getPic_small()); intent.putExtra("albumname", model.getTitle()); intent.putExtra("artistname", model.getAuthor()); mContext.startActivity(intent); } } } }