From e1097dcd309a99dacec5dd702e878d0b513112cc Mon Sep 17 00:00:00 2001 From: mwang <8205347@qq.com> Date: Thu, 21 Feb 2019 00:01:55 +0800 Subject: [PATCH] update protype --- zhuike/src/main/AndroidManifest.xml | 37 +- .../deiniu/zhuike/Activity_cate_books.java | 88 ++++ .../deiniu/zhuike/Activity_paihangbang.java | 6 +- .../com/deiniu/zhuike/Activity_shudan.java | 216 ++++++++ .../java/com/deiniu/zhuike/BasicFragment.java | 38 +- .../java/com/deiniu/zhuike/BookActivity.java | 187 ++++++- .../com/deiniu/zhuike/Fragment_Shelf.java | 21 +- .../com/deiniu/zhuike/Fragment_bangdan.java | 37 +- .../com/deiniu/zhuike/Fragment_booklist.java | 142 +++++ .../com/deiniu/zhuike/Fragment_jingxuan.java | 80 ++- .../zhuike/Fragment_jingxuan_tuijian.java | 24 +- .../com/deiniu/zhuike/Fragment_paihang.java | 3 +- .../com/deiniu/zhuike/Fragment_shudan.java | 12 +- .../deiniu/zhuike/Fragment_shudan_list.java | 15 +- .../java/com/deiniu/zhuike/Main2Activity.java | 6 +- .../com/deiniu/zhuike/activity_cates.java | 194 +++++++ .../deiniu/zhuike/utils/BookListAdapter.java | 20 + .../zhuike/utils/OnItemClickListener.java | 9 + .../main/res/layout/activity_cate_books.xml | 28 + zhuike/src/main/res/layout/activity_cates.xml | 30 ++ .../main/res/layout/activity_paihangbang.xml | 2 +- .../src/main/res/layout/activity_shudan.xml | 29 ++ .../main/res/layout/activity_title_layout.xml | 2 + .../layout/content_activity_cate_books.xml | 37 ++ .../res/layout/content_activity_cates.xml | 19 + .../res/layout/content_activity_shudan.xml | 193 +++++++ zhuike/src/main/res/layout/content_book.xml | 320 +++++++++--- .../res/layout/fragment_fragment_booklist.xml | 16 + .../layout/fragment_fragment_shudan_list.xml | 2 +- .../src/main/res/layout/fragment_jingxuan.xml | 493 +++++++++--------- .../res/layout/fragment_jingxuan_cates.xml | 47 +- .../res/layout/fragment_jingxuan_tuijian.xml | 77 +-- .../res/layout/fragment_shelf_more_sheet.xml | 11 +- .../src/main/res/layout/fragment_shudan.xml | 28 +- .../res/layout/recycle_list_item_bangdan.xml | 130 ++--- .../res/layout/recycle_list_item_cates.xml | 61 +++ .../res/layout/recycle_list_item_shudan.xml | 2 +- zhuike/src/main/res/values/dimens.xml | 3 +- zhuike/src/main/res/values/strings.xml | 3 + zhuike/src/main/res/values/styles.xml | 68 +++ 40 files changed, 2195 insertions(+), 541 deletions(-) create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/Activity_cate_books.java create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/Activity_shudan.java create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/Fragment_booklist.java create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/activity_cates.java create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/utils/BookListAdapter.java create mode 100644 zhuike/src/main/java/com/deiniu/zhuike/utils/OnItemClickListener.java create mode 100644 zhuike/src/main/res/layout/activity_cate_books.xml create mode 100644 zhuike/src/main/res/layout/activity_cates.xml create mode 100644 zhuike/src/main/res/layout/activity_shudan.xml create mode 100644 zhuike/src/main/res/layout/content_activity_cate_books.xml create mode 100644 zhuike/src/main/res/layout/content_activity_cates.xml create mode 100644 zhuike/src/main/res/layout/content_activity_shudan.xml create mode 100644 zhuike/src/main/res/layout/fragment_fragment_booklist.xml create mode 100644 zhuike/src/main/res/layout/recycle_list_item_cates.xml diff --git a/zhuike/src/main/AndroidManifest.xml b/zhuike/src/main/AndroidManifest.xml index 481cc6a..e8deb69 100644 --- a/zhuike/src/main/AndroidManifest.xml +++ b/zhuike/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + @@ -14,6 +15,23 @@ android:supportsRtl="true" android:theme="@style/ToolBarTheme" android:usesCleartextTraffic="true"> + + + - + - - - + android:theme="@style/ToolBarTheme.NoActionBar"> + - + + diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Activity_cate_books.java b/zhuike/src/main/java/com/deiniu/zhuike/Activity_cate_books.java new file mode 100644 index 0000000..7058116 --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/Activity_cate_books.java @@ -0,0 +1,88 @@ +package com.deiniu.zhuike; + +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.View; + +import com.flyco.tablayout.SlidingTabLayout; + +import java.util.ArrayList; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class Activity_cate_books extends AppCompatActivity { + + public static String TAG="com.deiniu.zhuike.Activity_cate_books"; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cate_books); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + ButterKnife.bind(this); + String title = getIntent().getStringExtra("CATENAME"); + this.setTitle(title); + + initTabs(); + + } +//---------tabs------------- + + @BindView(R.id.viewpager) + ViewPager mViewpager; + @BindView(R.id.tab_layout) + SlidingTabLayout tabLayout; + + private ArrayList mFragments; + ArrayList mList; + String[] mTitle; + void initTabs() { + + if(mFragments ==null || mFragments.size() ==0){ + mTitle = new String[]{"最热", "最新", "评分","完结"}; + mFragments = new ArrayList<>(); + mFragments.add(new Fragment_shudan_list()); + mFragments.add(new Fragment_shudan_list()); + mFragments.add(new Fragment_shudan_list()); + mFragments.add(new Fragment_shudan_list()); + Log.d(TAG,"initial fragments in tabs "); + } + Log.d(TAG,"set viewPager adapter "); + // FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) { 第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失 https://blog.csdn.net/allan_bst/article/details/64920076 + FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { + @Override + public Fragment getItem(int position) { + return mFragments.get(position); + } + + @Override + public int getCount() { + return mFragments.size(); + } + //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text + @Override + public CharSequence getPageTitle(int position) { + return mTitle[position]; + } + }; + mViewpager.setAdapter(mAdapter); + + + tabLayout.setViewPager(mViewpager); + // tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments); + mViewpager.setCurrentItem(0); + + + } + + +} diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Activity_paihangbang.java b/zhuike/src/main/java/com/deiniu/zhuike/Activity_paihangbang.java index 80a6443..104fe4a 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Activity_paihangbang.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Activity_paihangbang.java @@ -72,9 +72,9 @@ public static String TAG ="com.deiniu.zhuike.paihangbang"; if(mFragments ==null || mFragments.size() ==0){ mTitle = new String[]{"周榜", "月榜", "总榜"}; mFragments = new ArrayList<>(); - mFragments.add(new Fragment_shudan_list()); - mFragments.add(new Fragment_shudan_list()); - mFragments.add(new Fragment_shudan_list()); + mFragments.add(new Fragment_booklist()); + mFragments.add(new Fragment_booklist()); + mFragments.add(new Fragment_booklist()); } Log.d(TAG,"set viewPager adapter "); diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Activity_shudan.java b/zhuike/src/main/java/com/deiniu/zhuike/Activity_shudan.java new file mode 100644 index 0000000..b32e92d --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/Activity_shudan.java @@ -0,0 +1,216 @@ +package com.deiniu.zhuike; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +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.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + + +import com.deiniu.zhuike.utils.OnItemClickListener; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class Activity_shudan extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_shudan); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + ButterKnife.bind(this); + String title = getIntent().getStringExtra("CATENAME"); + this.setTitle(title); + initData(); + mAdapter = new BookListAdapter(this ,mDatas,R.layout.recycle_list_item_horizon,new OnItemClickListener() + { + + @Override + public void onItemClick(View view, int position) + { + showBook("射雕" +position); + + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + @Override + public void onLinearOutClick(View view, int bookId) { + // Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show(); + + // showBookDetail( mData.get(bookId)); + } + }); + initialBookList(); + + + } + + //------------------------列表绑定------------ + + private BookListAdapter mAdapter; + + @BindView(R.id.recycleViewBookList) + RecyclerView rvshudan; + List mDatas; + private void initData() { + + mDatas = new ArrayList(); + for (int i = 'A'; i <'K'; i++) + { + mDatas.add("小说" + (char) i); + } + } + void initialBookList() { + rvshudan.setLayoutManager(new LinearLayoutManager(this)); + rvshudan.setAdapter(mAdapter); + + + } + class MyViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.title) + TextView tvTitle; + @BindView(R.id.author) + TextView tvAuthor; + @BindView(R.id.category) + TextView tvCate; + @BindView(R.id.desc) + TextView tvDesc; + + + public MyViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + //tvTitle = (TextView) view.findViewById(R.id.title); + // tvAuthor = (TextView) view.findViewById(R.id.author); + + } + } + void showBook(String bookName) { //show paihangbang activity + Intent intent = new Intent(this, BookActivity.class); + intent.putExtra("BOOKNAME",bookName); + startActivity(intent); + } + + 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)); + holder.tvAuthor.setText("金庸" + position); + holder.tvCate.setText("cate" + position); + holder.tvDesc.setText("this is desc " + position); + + + // 如果设置了回调,则设置点击事件 + 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; + } + }); + + + } + } + + @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); + } + + } +} diff --git a/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java b/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java index 0b2baf0..c4abe8b 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java @@ -21,6 +21,8 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import com.deiniu.zhuike.utils.OnItemClickListener; + import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -93,13 +95,13 @@ public abstract class BasicFragment extends Fragment { //--------------------------------------------------------------book list adapter------------------------------------------------ - interface OnItemClickLitener + /* interface mOnItemClickListener { void onItemClick(View view, int position); void onItemLongClick(View view , int position); void onLinearOutClick(View view,int bookId); } - +*/ class BookListAdapter extends RecyclerView.Adapter { private final int EMPTY_VIEW = 1; private final int PROGRESS_VIEW = 2; @@ -107,17 +109,17 @@ public abstract class BasicFragment extends Fragment { private Context context; private List mDatas = new ArrayList(); - private OnItemClickLitener mOnItemClickLitener; + private OnItemClickListener mOnItemClickListener; private int listItemID; - public BookListAdapter(Context context,List mDatas,int listItemID,OnItemClickLitener clickLitener) { + public BookListAdapter(Context context,List mDatas,int listItemID,OnItemClickListener clickLitener) { this.context = context; this.mDatas = mDatas; - this.mOnItemClickLitener = clickLitener; + this.mOnItemClickListener = clickLitener; this.listItemID = listItemID; } - public BookListAdapter(Context context, OnItemClickLitener clickLitener) { + public BookListAdapter(Context context, OnItemClickListener clickLitener) { this.context = context; - this.mOnItemClickLitener = clickLitener; + this.mOnItemClickListener = clickLitener; } @@ -148,9 +150,9 @@ public abstract class BasicFragment extends Fragment { this.listItemID = listItemID; } - public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) + public void setOnItemClickLitener(OnItemClickListener mOnItemClickLitener) { - this.mOnItemClickLitener = mOnItemClickLitener; + this.mOnItemClickListener = mOnItemClickLitener; } @Override @@ -161,7 +163,7 @@ public abstract class BasicFragment extends Fragment { holder.tvCate.setText("cate"+position); holder.tvDesc.setText("this is desc " +position); // 如果设置了回调,则设置点击事件 - if (mOnItemClickLitener != null) + if (mOnItemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -169,7 +171,7 @@ public abstract class BasicFragment extends Fragment { public void onClick(View v) { int pos = holder.getLayoutPosition(); - mOnItemClickLitener.onItemClick(holder.itemView, pos); + mOnItemClickListener.onItemClick(holder.itemView, pos); } }); @@ -179,7 +181,7 @@ public abstract class BasicFragment extends Fragment { public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); - mOnItemClickLitener.onItemLongClick(holder.itemView, pos); + mOnItemClickListener.onItemLongClick(holder.itemView, pos); return false; } }); @@ -238,9 +240,21 @@ public abstract class BasicFragment extends Fragment { intent.putExtra("BOOKNAME",bookId); startActivity(intent); } + void showShudanDetail(int shuandanId){ + Intent intent = new Intent(activity, Activity_shudan.class); + intent.putExtra("SHUDANID",shuandanId); + startActivity(intent); + } //-------------------------------------------------------------------------------------book list adapter end-------------------------------------------------- + void showPaihangbang(String type) { //show paihangbang activity + + Intent intent = new Intent(activity, Activity_paihangbang.class); + intent.putExtra("BANGNAME",type); + startActivity(intent); + +} } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/BookActivity.java b/zhuike/src/main/java/com/deiniu/zhuike/BookActivity.java index c42936c..7a42634 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/BookActivity.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/BookActivity.java @@ -1,21 +1,32 @@ package com.deiniu.zhuike; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; +import android.content.Context; +import android.content.Intent; import android.os.Bundle; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; +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.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.deiniu.zhuike.utils.OnItemClickListener; + +import java.util.ArrayList; +import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -import io.alterac.blurkit.BlurKit; -import io.alterac.blurkit.BlurLayout; public class BookActivity extends AppCompatActivity { + BookListAdapter mAdapter; + // private BookListAdapter mAdapter; + private List mData;; + @BindView(R.id.rvBooklist) + RecyclerView rvBooklist; // @BindView(R.id.blurLayout) // BlurLayout blurLayout; // private float movement = 150; @@ -29,7 +40,26 @@ public class BookActivity extends AppCompatActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); String title = getIntent().getStringExtra("BOOKNAME"); this.setTitle(title); + mData =initData(mData,'D'); + mAdapter = new BookListAdapter(this, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { + @Override + public void onItemClick(View view, int position) { + showBookDetail( mData.get(position)); + } + + @Override + public void onItemLongClick(View view, int position) { + // initDialog(position); + // mAdapter.removeData(position); + } + + @Override + public void onLinearOutClick(View view, int bookId) { + + } + }); + initialBookList(); /* blurLayout.animate().translationY(movement).setDuration(1500).setListener(new AnimatorListenerAdapter() { @Override @@ -43,6 +73,30 @@ public class BookActivity extends AppCompatActivity { */ } + private void showBookDetail(String s) { + Intent intent = new Intent(this, BookActivity.class); + intent.putExtra("BOOKNAME",s); + startActivity(intent); + + } + + private List initData(List mDatas, char z) { + mDatas = new ArrayList(); + for (int i = 'A'; i < z; i++) + { + mDatas.add("射雕" + (char) i); + } + return mDatas; + } + + //----------------绑定列表 + + + void initialBookList() { + + rvBooklist.setLayoutManager(new LinearLayoutManager(this)); + rvBooklist.setAdapter(mAdapter); + } @Override protected void onResume() { super.onResume(); @@ -63,4 +117,125 @@ public class BookActivity extends AppCompatActivity { super.onStop(); // blurLayout.pauseBlur(); } + + class BookListAdapter extends RecyclerView.Adapter< BookListAdapter.MyViewHolder> { + 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 clickLitener) { + this.context = context; + this.mDatas = mDatas; + this.mOnItemClickListener = clickLitener; + 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) + { + BookListAdapter.MyViewHolder holder = new BookListAdapter.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 mOnItemClickLitener) + { + this.mOnItemClickListener = mOnItemClickLitener; + } + + @Override + public void onBindViewHolder( BookListAdapter.MyViewHolder holder, int position) + { + holder.tvTitle.setText(mDatas.get(position)); + holder.tvAuthor.setText("金庸" +position); + holder.tvCate.setText("cate"+position); + holder.tvDesc.setText("this is desc " +position); + // 如果设置了回调,则设置点击事件 + if (mOnItemClickListener != null) + { + holder.itemView.setOnClickListener(new View.OnClickListener() + { + @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; + } + }); + } + } + + @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); + } + class MyViewHolder extends RecyclerView.ViewHolder + { + @BindView(R.id.title) + TextView tvTitle; + @BindView(R.id.author) + TextView tvAuthor; + @BindView(R.id.category) + TextView tvCate; + @BindView(R.id.desc) + TextView tvDesc; + public MyViewHolder(View view) + { + super(view); + ButterKnife.bind(this, view); + //tvTitle = (TextView) view.findViewById(R.id.title); + // tvAuthor = (TextView) view.findViewById(R.id.author); + + } + } + } } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java index b91c6f3..73f710c 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java @@ -16,6 +16,7 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import com.deiniu.zhuike.utils.OnItemClickListener; import com.google.android.gms.plus.PlusOneButton; import java.util.ArrayList; @@ -83,7 +84,7 @@ public class Fragment_Shelf extends BasicFragment { initData(); - mAdapter = new BookListAdapter(activity,mDatas,R.layout.recycle_list_item,new OnItemClickLitener() + mAdapter = new BookListAdapter(activity,mDatas,R.layout.recycle_list_item,new OnItemClickListener() { @Override @@ -134,25 +135,7 @@ public class Fragment_Shelf extends BasicFragment { // mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); mRecyclerView.setLayoutManager(new GridLayoutManager(activity,3)); mRecyclerView.setAdapter(mAdapter ); - /* - mAdapter.setOnItemClickLitener(new OnItemClickLitener() - { - @Override - public void onItemClick(View view, int position) - { - Toast.makeText(activity, position + " click", - Toast.LENGTH_SHORT).show(); - } - - @Override - public void onItemLongClick(View view, int position) - { - initDialog(position); - // mAdapter.removeData(position); - } - }); - */ } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_bangdan.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_bangdan.java index 94f3b53..40404a7 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_bangdan.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_bangdan.java @@ -14,6 +14,8 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import com.deiniu.zhuike.utils.OnItemClickListener; + import java.util.ArrayList; import java.util.List; @@ -74,14 +76,14 @@ public class Fragment_bangdan extends BasicFragment { mParam2 = getArguments().getString(ARG_PARAM2); } initData(); - mAdapter = new MyListAdapter(activity ,mData,R.layout.recycle_list_item_bangdan,new OnItemClickLitener() + mAdapter = new MyListAdapter(activity ,mData,R.layout.recycle_list_item_bangdan,new OnItemClickListener() { @Override public void onItemClick(View view, int position) { + showPaihangbang("分类名称" +position); - showBookDetail( mData.get(position)); } @Override @@ -93,6 +95,7 @@ public class Fragment_bangdan extends BasicFragment { @Override public void onLinearOutClick(View view, int bookId) { // Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show(); + showBookDetail( mData.get(bookId)); } }); @@ -132,7 +135,7 @@ public class Fragment_bangdan extends BasicFragment { TAG ="com.deiniu.zhuike.Fragment_bangdan"; } - + class MyListAdapter extends RecyclerView.Adapter { private final int EMPTY_VIEW = 1; private final int PROGRESS_VIEW = 2; @@ -140,15 +143,15 @@ public class Fragment_bangdan extends BasicFragment { private Context context; private List mDatas = new ArrayList(); - private OnItemClickLitener mOnItemClickLitener; + private OnItemClickListener mOnItemClickLitener; private int listItemID; - public MyListAdapter(Context context,List mDatas,int listItemID,OnItemClickLitener clickLitener) { + public MyListAdapter(Context context,List mDatas,int listItemID,OnItemClickListener clickLitener) { this.context = context; this.mDatas = mDatas; this.mOnItemClickLitener = clickLitener; this.listItemID = listItemID; } - public MyListAdapter(Context context, OnItemClickLitener clickLitener) { + public MyListAdapter(Context context, OnItemClickListener clickLitener) { this.context = context; this.mOnItemClickLitener = clickLitener; @@ -181,7 +184,7 @@ public class Fragment_bangdan extends BasicFragment { this.listItemID = listItemID; } - public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) + public void setOnItemClickLitener(OnItemClickListener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } @@ -191,24 +194,24 @@ public class Fragment_bangdan extends BasicFragment { { holder.tvCateName .setText("分类名称" +position); holder.tvTitle.setText(mDatas.get(position)); - holder.tvAuthor.setText("金庸" +position); + holder.tvAuthor.setText("作者" +position); holder.tvCate.setText("cate"+position); holder.tvDesc.setText("this is desc " +position); - holder.tvTitle2.setText(mDatas.get(position)); - holder.tvAuthor2.setText("金庸2" +position); + holder.tvTitle2.setText(mDatas.get(position) +1); + holder.tvAuthor2.setText("作者2" +position); holder.tvCate2.setText("cate2"+position); holder.tvDesc2.setText("this is desc2 " +position); - holder.tvTitle3.setText(mDatas.get(position)); - holder.tvAuthor3.setText("金庸3-" +position); + holder.tvTitle3.setText(mDatas.get(position)+2); + holder.tvAuthor3.setText("作者3" +position); holder.tvCate3.setText("cate3-"+position); holder.tvDesc3.setText("this is desc3- " +position); // 如果设置了回调,则设置点击事件 if (mOnItemClickLitener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() + holder.itemView.setOnClickListener(new View.OnClickListener() //show more cate paihang { @Override public void onClick(View v) @@ -230,7 +233,7 @@ public class Fragment_bangdan extends BasicFragment { }); - holder.ll1.setOnClickListener(new View.OnClickListener() { + holder.ll1.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { @@ -239,7 +242,7 @@ public class Fragment_bangdan extends BasicFragment { } }); - holder.ll2.setOnClickListener(new View.OnClickListener() { + holder.ll2.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { @@ -248,7 +251,7 @@ public class Fragment_bangdan extends BasicFragment { } }); - holder.ll3.setOnClickListener(new View.OnClickListener() { + holder.ll3.setOnClickListener(new View.OnClickListener() { //show bookdetail @Override public void onClick(View v) { @@ -319,6 +322,6 @@ public class Fragment_bangdan extends BasicFragment { } } } - + } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_booklist.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_booklist.java new file mode 100644 index 0000000..b2a33e1 --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_booklist.java @@ -0,0 +1,142 @@ +package com.deiniu.zhuike; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +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.Toast; + +import com.deiniu.zhuike.utils.OnItemClickListener; +import com.google.android.gms.plus.PlusOneButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +/** + * A fragment with a Google +1 button. + * Activities that contain this fragment must implement the + * {@link Fragment_booklist.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link Fragment_booklist#newInstance} factory method to + * create an instance of this fragment. + */ +public class Fragment_booklist extends BasicFragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + // The request code must be 0 or greater. + private static final int PLUS_ONE_REQUEST_CODE = 0; + // The URL to +1. Must be a valid URL. + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + + public Fragment_booklist() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment Fragment_booklist. + */ + // TODO: Rename and change types and number of parameters + public static Fragment_booklist newInstance(String param1, String param2) { + Fragment_booklist fragment = new Fragment_booklist(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + mData =initData(mData,'Z'); + mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { + + @Override + public void onItemClick(View view, int position) { + showBookDetail( mData.get(position)); + } + + @Override + public void onItemLongClick(View view, int position) { + // initDialog(position); + // mAdapter.removeData(position); + } + + @Override + public void onLinearOutClick(View view, int bookId) { + Toast.makeText(activity, "book " + bookId + " clicked", + Toast.LENGTH_SHORT).show(); + } + }); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_fragment_booklist, container, false); + + //Find the +1 button + ButterKnife.bind(this, view); + + initialBookList(); + + return view; + } + //----------------绑定列表 + BasicFragment.BookListAdapter mAdapter; + // private BookListAdapter mAdapter; + private List mData;; + + @BindView(R.id.rvBooklist) + RecyclerView rvBooklist; + + void initialBookList() { + + rvBooklist.setLayoutManager(new LinearLayoutManager(activity)); + rvBooklist.setAdapter(mAdapter); + } + @Override + public void onResume() { + super.onResume(); + + + } + + + @Override + public void setFTag() { + + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + + +} diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java index 8a7bbb4..7b0d83e 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java @@ -15,6 +15,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; @@ -22,6 +23,7 @@ import android.widget.Toast; import com.bumptech.glide.Glide; import com.deiniu.zhuike.utils.CyclePageIndicator; import com.deiniu.zhuike.utils.MyViewPager; +import com.deiniu.zhuike.utils.OnItemClickListener; import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.Transformer; @@ -33,6 +35,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; +import butterknife.OnClick; /** @@ -52,12 +55,11 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener // TODO: Rename and change types of parameters private String mParam1; private String mParam2; - @BindView(R.id.llTuijian) - LinearLayout llTuijian; + //@BindView(R.id.llTuijian) + // LinearLayout llTuijian; @BindView(R.id.banner) Banner banner; - // @BindView(R.id.banner2) - // Banner banner2; + private ArrayList list_path; private ArrayList list_title; @@ -67,6 +69,41 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener } + @OnClick({R.id.buttonMoreHot,R.id.buttonMoreLianzai,R.id.buttonMoreTuijian,R.id.buttonMoreWanben + ,R.id.buttonCatePingfen,R.id.buttonCateRegeng ,R.id.buttonCateTuijian,R.id.buttonCateShoucang,R.id.buttonCateWanjie + }) + void bubmitButton(View view) { + + switch (view.getId()) { + case R.id.buttonMoreLianzai: + showPaihangbang("最热"); + break; + case R.id.buttonMoreTuijian: + showPaihangbang("推荐"); + break; + case R.id.buttonMoreWanben: + showPaihangbang("完结"); + break; + case R.id.buttonMoreHot: + showPaihangbang("新书"); + break; + case R.id.buttonCatePingfen: + showPaihangbang("评分"); + break; + case R.id.buttonCateRegeng: + showPaihangbang("最热"); + break; + case R.id.buttonCateWanjie: + showPaihangbang("完结"); + break; + case R.id.buttonCateShoucang: + showPaihangbang("收藏"); + break; + case R.id.buttonCateTuijian: + showPaihangbang("推荐"); + break; + } + } /** * Use this factory method to create a new instance of * this fragment using the provided parameters. @@ -111,23 +148,11 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener initTuijianPagers(); initialBookList(); - llTuijian.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - showPaihangbang("推荐"); - } - }); return v; } - private void showPaihangbang(String type) { - Intent intent = new Intent(activity, Activity_paihangbang.class); - intent.putExtra("BANGNAME",type); - startActivity(intent); - - } @Override public void setFTag() { TAG ="com.deiniu.zhuike.Fragment_jingxuan"; @@ -176,7 +201,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener @Override public void OnBannerClick(int position) { - Log.i("第一个banner", "你点了第一个banner 第"+position+"张轮播图"); + showShudanDetail(position); } //自定义的图片加载器 private class MyLoader extends ImageLoader { @@ -209,6 +234,8 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener mFragments.add(new Fragment_jingxuan_tuijian()); mFragments.add(new Fragment_jingxuan_tuijian()); mFragments.add(new Fragment_jingxuan_tuijian()); + mFragments.add(new Fragment_jingxuan_tuijian()); + mFragments.add(new Fragment_jingxuan_tuijian()); Log.d(TAG, "initial fragments in tabs "); } @@ -232,7 +259,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener // } }; mViewpagerTuijian.setAdapter(mAdapter); - mViewpagerTuijian.addOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, 3)); + mViewpagerTuijian.addOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, mFragments.size())); } @@ -253,8 +280,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener void initialBookList() { - rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); - rvHotNewL.setAdapter(new BookListAdapter(activity,mHotNewData_l,R.layout.recycle_list_item_horizon ,new OnItemClickLitener() + OnItemClickListener onItemClickListener =new OnItemClickListener() { @Override @@ -275,11 +301,13 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener } - })); + } ; + rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); + rvHotNewL.setAdapter(new BookListAdapter(activity,mHotNewData_l,R.layout.recycle_list_item_horizon ,onItemClickListener)); rvHotNewG.setLayoutManager(new GridLayoutManager(activity,3)); - rvHotNewG.setAdapter(new BookListAdapter(activity,mHotNewData_g,R.layout.recycle_list_item,new OnItemClickLitener() + rvHotNewG.setAdapter(new BookListAdapter(activity,mHotNewData_g,R.layout.recycle_list_item,new OnItemClickListener() { @Override @@ -302,7 +330,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener rvLianZaiL.setLayoutManager(new LinearLayoutManager(this.activity)); - rvLianZaiL.setAdapter(new BookListAdapter(activity,mHotLianZaiData_l,R.layout.recycle_list_item_horizon,new OnItemClickLitener() + rvLianZaiL.setAdapter(new BookListAdapter(activity,mHotLianZaiData_l,R.layout.recycle_list_item_horizon,new OnItemClickListener() { @Override @@ -327,7 +355,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener rvLianZaiG.setLayoutManager(new GridLayoutManager(activity,3)); - rvLianZaiG.setAdapter(new BookListAdapter(activity,mHotLianZaiData_g,R.layout.recycle_list_item,new OnItemClickLitener() + rvLianZaiG.setAdapter(new BookListAdapter(activity,mHotLianZaiData_g,R.layout.recycle_list_item,new OnItemClickListener() { @Override @@ -350,7 +378,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener })); rvFinishL.setLayoutManager(new LinearLayoutManager(this.activity)); - rvFinishL.setAdapter(new BookListAdapter(activity,mFinishedData_l,R.layout.recycle_list_item_horizon,new OnItemClickLitener() + rvFinishL.setAdapter(new BookListAdapter(activity,mFinishedData_l,R.layout.recycle_list_item_horizon,new OnItemClickListener() { @Override @@ -374,7 +402,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener rvFinishG.setLayoutManager(new GridLayoutManager(activity,3)); - rvFinishG.setAdapter(new BookListAdapter(activity,mFinishedData_g,R.layout.recycle_list_item ,new OnItemClickLitener() + rvFinishG.setAdapter(new BookListAdapter(activity,mFinishedData_g,R.layout.recycle_list_item ,new OnItemClickListener() { @Override diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan_tuijian.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan_tuijian.java index 1bc13dc..c01dda0 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan_tuijian.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan_tuijian.java @@ -10,6 +10,9 @@ import android.view.ViewGroup; import com.google.android.gms.plus.PlusOneButton; +import butterknife.ButterKnife; +import butterknife.OnClick; + /** * A fragment with a Google +1 button. * Activities that contain this fragment must implement the @@ -69,10 +72,29 @@ public class Fragment_jingxuan_tuijian extends BasicFragment { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_jingxuan_tuijian, container, false); - + ButterKnife.bind(this, view); return view; } + @OnClick({R.id.llGallary1,R.id.llGallary2,R.id.llGallary3}) + void onGallaryClick(View view){ + switch (view.getId()){ + case R.id.llGallary1: + showBookDetail("ABC"); + break; + case R.id.llGallary2: + showBookDetail("123"); + break; + case R.id.llGallary3: + showBookDetail("ZXF"); + break; + } + + + + + + } @Override public void onResume() { super.onResume(); diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_paihang.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_paihang.java index f1265f1..7b4fd72 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_paihang.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_paihang.java @@ -14,6 +14,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import com.deiniu.zhuike.utils.OnItemClickListener; import com.flyco.tablayout.CommonTabLayout; import com.flyco.tablayout.SlidingTabLayout; import com.flyco.tablayout.listener.CustomTabEntity; @@ -81,7 +82,7 @@ public class Fragment_paihang extends BasicFragment { mParam2 = getArguments().getString(ARG_PARAM2); } initData(); - mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickLitener() { + mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { @Override public void onItemClick(View view, int position) { diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan.java index 50d3a80..f838fe8 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan.java @@ -3,6 +3,8 @@ package com.deiniu.zhuike; import android.content.Context; import android.net.Uri; import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; @@ -11,6 +13,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Toast; import com.flyco.tablayout.SlidingTabLayout; @@ -83,6 +86,12 @@ public class Fragment_shudan extends BasicFragment { ButterKnife.bind(this, v); initTabs(); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Toast.makeText(getContext(),"。。。。。。",Toast.LENGTH_LONG).show(); + } + }); return v; } @@ -92,7 +101,8 @@ public class Fragment_shudan extends BasicFragment { } //---------tabs------------- - + @BindView(R.id.fab) + FloatingActionButton fab; @BindView(R.id.viewpager) ViewPager mViewpager; @BindView(R.id.tab_layout2) diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan_list.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan_list.java index f724704..9e478a4 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan_list.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_shudan_list.java @@ -1,6 +1,7 @@ package com.deiniu.zhuike; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -12,8 +13,10 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.deiniu.zhuike.utils.OnItemClickListener; import com.google.android.gms.plus.PlusOneButton; +import java.util.ArrayList; import java.util.List; import butterknife.BindView; @@ -58,12 +61,11 @@ public class Fragment_shudan_list extends BasicFragment { mParam2 = getArguments().getString(ARG_PARAM2); } initData(); - mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickLitener() { + mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { @Override public void onItemClick(View view, int position) { - Toast.makeText(activity, position + " click", - Toast.LENGTH_SHORT).show(); + showShudanDetail(position); } @Override @@ -125,7 +127,11 @@ public class Fragment_shudan_list extends BasicFragment { RecyclerView rvShudan; private void initData() { - mData =initData(mData,'Z'); + mData = new ArrayList(); + for (int i = 'A'; i < 'X'; i++) + { + mData.add("读者书单" + (char) i); + } } void initialBookList() { @@ -136,4 +142,5 @@ public class Fragment_shudan_list extends BasicFragment { } + } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Main2Activity.java b/zhuike/src/main/java/com/deiniu/zhuike/Main2Activity.java index ea6cd83..363fcdd 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Main2Activity.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Main2Activity.java @@ -2,6 +2,7 @@ package com.deiniu.zhuike; import android.app.SearchManager; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.nfc.Tag; import android.os.Bundle; @@ -148,7 +149,10 @@ public class Main2Activity extends AppCompatActivity public boolean onMenuItemClick(MenuItem item) { int menuItemId = item.getItemId(); if (menuItemId == R.id.menuFenlei) { - Toast.makeText( Main2Activity.this , R.string.test , Toast.LENGTH_SHORT).show(); + + Intent intent = new Intent(Main2Activity.this, activity_cates.class); + startActivity(intent); + }else if(menuItemId == R.id.menuMore) { showShelfMoreSheet(); diff --git a/zhuike/src/main/java/com/deiniu/zhuike/activity_cates.java b/zhuike/src/main/java/com/deiniu/zhuike/activity_cates.java new file mode 100644 index 0000000..07c1307 --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/activity_cates.java @@ -0,0 +1,194 @@ +package com.deiniu.zhuike; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class activity_cates extends AppCompatActivity { + + @BindView(R.id.recycleViewCateList) + RecyclerView mRecyclerView; + private List mDatas; + private BookListAdapter mAdapter; +//@BindView(R.id.textTile) +//TextView tvTitle; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); + setContentView(R.layout.activity_cates); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + ButterKnife.bind(this); + // getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.activity_title_layout); + // tvTitle.setText("小说分类"); + // setTitle("小说分类"); + initData(); + + mAdapter = new BookListAdapter(this,mDatas,R.layout.recycle_list_item_cates,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + showCateList( mDatas.get(position)); + + } + }); + + initReceyleView(); + + } + interface OnItemClickLitener + { + void onItemClick(View view, int position); + + } + + private void showCateList(String s) { + Intent intent = new Intent(activity_cates.this, Activity_cate_books.class); + intent.putExtra("CATENAME",s); + startActivity(intent); + + } + + private void initData() { + mDatas = new ArrayList(); + for (int i = 'A'; i <'K'; i++) + { + mDatas.add("小说分类" + (char) i); + } + + } + + void initReceyleView() { + + // mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); + mRecyclerView.setLayoutManager(new GridLayoutManager(this,2)); + mRecyclerView.setAdapter(mAdapter ); + + } + + 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 OnItemClickLitener mOnItemClickLitener; + private int listItemID; + public BookListAdapter(Context context, List mDatas, int listItemID, OnItemClickLitener clickLitener) { + this.context = context; + this.mDatas = mDatas; + this.mOnItemClickLitener = clickLitener; + this.listItemID = listItemID; + } + public BookListAdapter(Context context, OnItemClickLitener clickLitener) { + this.context = context; + this.mOnItemClickLitener = 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 BookListAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) + { + BookListAdapter.MyViewHolder holder = new BookListAdapter.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(OnItemClickLitener mOnItemClickLitener) + { + this.mOnItemClickLitener = mOnItemClickLitener; + } + + @Override + public void onBindViewHolder(BookListAdapter.MyViewHolder holder, int position) + { + holder.tvTitle.setText(mDatas.get(position)); + holder.tvNum.setText("9999"); + // 如果设置了回调,则设置点击事件 + if (mOnItemClickLitener != null) + { + holder.itemView.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View v) + { + int pos = holder.getLayoutPosition(); + mOnItemClickLitener.onItemClick(holder.itemView, 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); + } + class MyViewHolder extends RecyclerView.ViewHolder + { + @BindView(R.id.tvCateName) + TextView tvTitle; + @BindView(R.id.tvCateNums) + TextView tvNum; + + public MyViewHolder(View view) + { + super(view); + ButterKnife.bind(this, view); + //tvTitle = (TextView) view.findViewById(R.id.title); + // tvAuthor = (TextView) view.findViewById(R.id.author); + + } + } + } +} diff --git a/zhuike/src/main/java/com/deiniu/zhuike/utils/BookListAdapter.java b/zhuike/src/main/java/com/deiniu/zhuike/utils/BookListAdapter.java new file mode 100644 index 0000000..45f9eee --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/utils/BookListAdapter.java @@ -0,0 +1,20 @@ +package com.deiniu.zhuike.utils; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.deiniu.zhuike.BasicFragment; +import com.deiniu.zhuike.Fragment_bangdan; +import com.deiniu.zhuike.R; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + diff --git a/zhuike/src/main/java/com/deiniu/zhuike/utils/OnItemClickListener.java b/zhuike/src/main/java/com/deiniu/zhuike/utils/OnItemClickListener.java new file mode 100644 index 0000000..cd879d2 --- /dev/null +++ b/zhuike/src/main/java/com/deiniu/zhuike/utils/OnItemClickListener.java @@ -0,0 +1,9 @@ +package com.deiniu.zhuike.utils; + +import android.view.View; + +public interface OnItemClickListener { + void onItemClick(View view, int position); + void onItemLongClick(View view , int position); + void onLinearOutClick(View view,int bookId); +} diff --git a/zhuike/src/main/res/layout/activity_cate_books.xml b/zhuike/src/main/res/layout/activity_cate_books.xml new file mode 100644 index 0000000..437b04a --- /dev/null +++ b/zhuike/src/main/res/layout/activity_cate_books.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/activity_cates.xml b/zhuike/src/main/res/layout/activity_cates.xml new file mode 100644 index 0000000..50c6b1c --- /dev/null +++ b/zhuike/src/main/res/layout/activity_cates.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/activity_paihangbang.xml b/zhuike/src/main/res/layout/activity_paihangbang.xml index 5e88bfe..07ff6e2 100644 --- a/zhuike/src/main/res/layout/activity_paihangbang.xml +++ b/zhuike/src/main/res/layout/activity_paihangbang.xml @@ -12,7 +12,7 @@ diff --git a/zhuike/src/main/res/layout/activity_shudan.xml b/zhuike/src/main/res/layout/activity_shudan.xml new file mode 100644 index 0000000..904f3a7 --- /dev/null +++ b/zhuike/src/main/res/layout/activity_shudan.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/activity_title_layout.xml b/zhuike/src/main/res/layout/activity_title_layout.xml index 1cc1837..db4dce9 100644 --- a/zhuike/src/main/res/layout/activity_title_layout.xml +++ b/zhuike/src/main/res/layout/activity_title_layout.xml @@ -6,5 +6,7 @@ diff --git a/zhuike/src/main/res/layout/content_activity_cate_books.xml b/zhuike/src/main/res/layout/content_activity_cate_books.xml new file mode 100644 index 0000000..585e5fb --- /dev/null +++ b/zhuike/src/main/res/layout/content_activity_cate_books.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/content_activity_cates.xml b/zhuike/src/main/res/layout/content_activity_cates.xml new file mode 100644 index 0000000..e399ada --- /dev/null +++ b/zhuike/src/main/res/layout/content_activity_cates.xml @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/content_activity_shudan.xml b/zhuike/src/main/res/layout/content_activity_shudan.xml new file mode 100644 index 0000000..4946593 --- /dev/null +++ b/zhuike/src/main/res/layout/content_activity_shudan.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + +