package com.novelbook.android; import android.content.Context; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.novelbook.android.db.Novel; import com.novelbook.android.db.BookDan; import com.novelbook.android.utils.OnItemClickListener; import java.util.ArrayList; import java.util.List; import butterknife.BindView; public class Activity_createShudan extends Activity_base { public static final String TAG = Activity_createShudan.class.getSimpleName(); @BindView(R.id.toolbar) Toolbar toolbar ; BookListAdapter mAdapter; private List mData; @Override public int getLayoutRes() { return R.layout.activity_create_shudan; } @Override protected void initViews() { initialBookList(); } void initialBookList() { initialAdapter(); rvshudan.setLayoutManager(new LinearLayoutManager(this)); rvshudan.setAdapter(mAdapter); } void initialAdapter(){ mAdapter = new BookListAdapter(this ,mData ,R.layout.recycle_list_item_horizon_with_delete,new OnItemClickListener() { @Override public void onItemClick(View view, int position) { setCover(); } @Override public void onItemLongClick(View view, int position) { // initDialog(position); // mAdapter.removeData(position); } @Override public void onLinearOutClick(View view, int position ,int llId) { // Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show(); // showBookDetail( mData.get(bookId)); } }); } private void setCover() { Toast.makeText(this,"封面设定",Toast.LENGTH_LONG).show(); } protected void setupToolbar(){ super.setupToolbar(); /*toolbar.inflateMenu(R.menu.menu_create_shudan);//设置右上角的填充菜单 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { int menuItemId = item.getItemId(); if (menuItemId == R.id.mnSave) { saveShudan(); }else if(menuItemId == R.id.mnPublish) { publishShudan(); } return true; } });*/ } @Override protected void setTitle() { setTitle("创建书单"); } @Override protected void initData() { mData = new ArrayList(); for (int i = 0; i <5; i++) { Novel bk = new Novel (); bk.setAuthor("金庸" +i); bk.setName("射雕" +(char)i); bk.setNovelType("cate" +i); bk.setDesc(" 南宋时期的武林故事南宋时期的武林故事南宋时期的武林故事南宋时期的武林故事南宋时期的武林故事南宋时期的武林故事南宋时期的武林故事"); mData .add(bk); } } @Override public void fillData() { } private void saveShudan() { } private void publishShudan() { } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. // getMenuInflater().inflate(R.menu.menu_create_shudan, menu); return true; } class BookListAdapter extends RecyclerView.Adapter { private final int EMPTY_VIEW = 1; private final int PROGRESS_VIEW = 2; private final int IMAGE_VIEW = 3; private Context context; private List mDatas = new ArrayList(); private OnItemClickListener mOnItemClickListener; private int listItemID; public BookListAdapter(Context context, List mDatas, int listItemID, OnItemClickListener clicklistener) { this.context = context; this.mDatas = mDatas; this.mOnItemClickListener = clicklistener; this.listItemID = listItemID; } public BookListAdapter(Context context, OnItemClickListener clickLitener) { this.context = context; this.mOnItemClickListener = clickLitener; } @Override public int getItemViewType(int position) { if (mDatas.size() == 0) { return EMPTY_VIEW; } else if (mDatas.get(position) == null) { return PROGRESS_VIEW; } else { return super.getItemViewType(position); } } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(listItemID, parent, false)); return holder; } public void setParameters(List mDatas, int listItemID) { this.mDatas = mDatas; this.listItemID = listItemID; } public void setOnItemClickLitener(OnItemClickListener mOnItemClickListener) { this.mOnItemClickListener = mOnItemClickListener; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tvTitle.setText(mDatas.get(position).getName()); holder.tvAuthor.setText(mDatas.get(position).getAuthor()); holder.tvCate.setText(mDatas.get(position).getNovelType()); holder.tvDesc.setText(mDatas.get(position).getDesc()); // 如果设置了回调,则设置点击事件 if (mOnItemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() //show more cate paihang { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickListener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickListener.onItemLongClick(holder.itemView, pos); return false; } }); holder.btnDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); removeData(pos); } }); } } @Override public int getItemCount() { return mDatas.size(); } public void addData(int position) { // mDatas.add(position, "Insert One"); notifyItemInserted(position); } public void removeData(int position) { mDatas.remove(position); notifyItemRemoved(position); notifyDataSetChanged(); } } }