package io.github.javiewer.adapter; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.graphics.Paint; import android.os.Bundle; import android.support.v4.content.res.ResourcesCompat; 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 android.widget.Toast; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import io.github.javiewer.R; import io.github.javiewer.activity.MovieListActivity; import io.github.javiewer.adapter.item.MovieDetail; import io.github.javiewer.view.ViewUtil; /** * Project: JAViewer */ public class MovieHeaderAdapter extends RecyclerView.Adapter<MovieHeaderAdapter.ViewHolder> { private List<MovieDetail.Header> headers; private Activity mParentActivity; private ImageView mIcon; public boolean first = true; public MovieHeaderAdapter(List<MovieDetail.Header> headers, Activity mParentActivity, ImageView mIcon) { this.headers = headers; this.mParentActivity = mParentActivity; this.mIcon = mIcon; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_header, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { final MovieDetail.Header header = headers.get(position); if (header.name != null && header.value != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipboardManager clip = (ClipboardManager) mParentActivity.getSystemService(Context.CLIPBOARD_SERVICE); clip.setPrimaryClip(ClipData.newPlainText(header.name, header.value)); Toast.makeText(mParentActivity, "已复制到剪贴板", Toast.LENGTH_SHORT).show(); } }); holder.mHeaderName.setText(header.name); holder.mHeaderValue.setText(header.value); if (header.getLink() != null) { holder.mHeaderValue.setPaintFlags(holder.mHeaderValue.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); holder.mHeaderValue.setTextColor(ResourcesCompat.getColor(this.mParentActivity.getResources(), R.color.colorAccent, null)); holder.mHeaderValue.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mParentActivity, MovieListActivity.class); Bundle bundle = new Bundle(); bundle.putString("title", header.getName() + " " + header.getValue()); bundle.putString("link", header.getLink()); intent.putExtras(bundle); mParentActivity.startActivity(intent); } }); } if (first) { ViewUtil.alignIconToView(mIcon, holder.mHeaderName); first = false; } } } @Override public int getItemCount() { return headers == null ? 0 : headers.size(); } public class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.header_name) public TextView mHeaderName; @BindView(R.id.header_value) public TextView mHeaderValue; public ViewHolder(View view) { super(view); ButterKnife.bind(this, view); } } }