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.ArtistDetailActivity; import com.wm.remusic.fragment.AttachFragment; import com.wm.remusic.json.SearchArtistInfo; import com.wm.remusic.widget.DividerItemDecoration; import java.util.ArrayList; /** * Created by wm on 2016/5/18. */ public class SearchArtistFragment extends AttachFragment { private ArrayList<SearchArtistInfo> artistInfos; private RecyclerView recyclerView; private LinearLayoutManager layoutManager; private ArtistAdapter mAdapter; private RecyclerView.ItemDecoration itemDecoration; public static SearchArtistFragment newInstance(ArrayList<SearchArtistInfo> list) { SearchArtistFragment fragment = new SearchArtistFragment(); Bundle bundle = new Bundle(); bundle.putParcelableArrayList("searchArtist", 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 ArtistAdapter(null); recyclerView.setAdapter(mAdapter); recyclerView.setHasFixedSize(true); setItemDecoration(); loadArtists(); return view; } //设置分割线 private void setItemDecoration() { itemDecoration = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL_LIST); recyclerView.addItemDecoration(itemDecoration); } private void loadArtists() { if (getArguments() != null) { artistInfos = getArguments().getParcelableArrayList("searchArtist"); } mAdapter = new ArtistAdapter(artistInfos); recyclerView.setAdapter(mAdapter); setItemDecoration(); } public class ArtistAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private ArrayList<SearchArtistInfo> mList; public ArtistAdapter(ArrayList<SearchArtistInfo> list) { mList = list; } //更新adpter的数据 public void updateDataSet(ArrayList<SearchArtistInfo> list) { this.mList = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_common_item, viewGroup, false); return new ListItemViewHolder(itemView); } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int i) { SearchArtistInfo model = mList.get(i); //设置条目状态 ((ListItemViewHolder) holder).mainTitle.setText(model.getAuthor()); ((ListItemViewHolder) holder).draweeView.setImageURI(Uri.parse(model.getAvatar_middle())); } @Override public int getItemCount() { return mList == null ? 0 : mList.size(); } public class ListItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { //ViewHolder SimpleDraweeView draweeView; TextView mainTitle, title; ImageView moreOverflow; ListItemViewHolder(View view) { super(view); this.mainTitle = (TextView) view.findViewById(R.id.viewpager_list_toptext); this.title = (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); } //加载歌手专辑界面fragment @Override public void onClick(View v) { Intent intent = new Intent(mContext, ArtistDetailActivity.class); SearchArtistInfo model = mList.get(getAdapterPosition()); intent.putExtra("artistid", model.getArtist_id()); intent.putExtra("artistart", model.getAvatar_middle()); intent.putExtra("artistname", model.getAuthor()); intent.putExtra("artistUid", model.getTing_uid()); mContext.startActivity(intent); } } } }