working on first page
This commit is contained in:
		
							parent
							
								
									d57aab3251
								
							
						
					
					
						commit
						56427a7621
					
				|  | @ -92,7 +92,7 @@ | ||||||
|         </activity> |         </activity> | ||||||
|         <activity |         <activity | ||||||
|             android:name=".Main2Activity" |             android:name=".Main2Activity" | ||||||
|             android:label="@string/app_name" | 
 | ||||||
|             android:launchMode="singleTop" |             android:launchMode="singleTop" | ||||||
|             android:theme="@style/ToolBarTheme.NoActionBar"> |             android:theme="@style/ToolBarTheme.NoActionBar"> | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|  |  | ||||||
|  | @ -14,13 +14,17 @@ import android.support.v7.widget.Toolbar; | ||||||
| import android.view.MenuItem; | import android.view.MenuItem; | ||||||
| import android.view.View; | import android.view.View; | ||||||
| import android.widget.Button; | import android.widget.Button; | ||||||
|  | import android.widget.ImageView; | ||||||
| import android.widget.TextView; | import android.widget.TextView; | ||||||
| import android.widget.Toast; | import android.widget.Toast; | ||||||
| 
 | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
| import com.novelbook.android.db.Novel; | import com.novelbook.android.db.Novel; | ||||||
| import com.novelbook.android.netsubscribe.MovieSubscribe; | import com.novelbook.android.netsubscribe.MovieSubscribe; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultListener; | import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub; | import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
|  | import com.novelbook.android.utils.MyImageLoader; | ||||||
| import com.novelbook.android.utils.OnItemClickListener; | import com.novelbook.android.utils.OnItemClickListener; | ||||||
| import com.novelbook.android.adapter.BookListAdapter; | import com.novelbook.android.adapter.BookListAdapter; | ||||||
| 
 | 
 | ||||||
|  | @ -33,6 +37,7 @@ import butterknife.ButterKnife; | ||||||
| public abstract  class Activity_base extends AppCompatActivity { | public abstract  class Activity_base extends AppCompatActivity { | ||||||
|     private ProgressDialog mProgressDialog; |     private ProgressDialog mProgressDialog; | ||||||
| 
 | 
 | ||||||
|  |     protected Gson gson = new Gson(); | ||||||
|     @Nullable |     @Nullable | ||||||
|     @BindView(R.id.recycleViewBookList) |     @BindView(R.id.recycleViewBookList) | ||||||
|     RecyclerView rvshudan; |     RecyclerView rvshudan; | ||||||
|  | @ -41,7 +46,7 @@ public abstract  class Activity_base extends AppCompatActivity { | ||||||
|         intent.putExtra("BOOKNAME",bookName); |         intent.putExtra("BOOKNAME",bookName); | ||||||
|         startActivity(intent); |         startActivity(intent); | ||||||
|     } |     } | ||||||
| 
 |    // protected MyImageLoader imgloader = new MyImageLoader(); | ||||||
|     /** |     /** | ||||||
|      * 初始化布局 |      * 初始化布局 | ||||||
|      */ |      */ | ||||||
|  | @ -151,7 +156,7 @@ public abstract  class Activity_base extends AppCompatActivity { | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     public void showProgress(boolean flag, String message) { |     public void showProgressDialog(boolean flag, String message) { | ||||||
|         if (mProgressDialog == null) { |         if (mProgressDialog == null) { | ||||||
|             mProgressDialog = new ProgressDialog(this); |             mProgressDialog = new ProgressDialog(this); | ||||||
|             mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); |             mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); | ||||||
|  | @ -199,6 +204,9 @@ public abstract  class Activity_base extends AppCompatActivity { | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     protected void loadImageView(String url, ImageView imageView){ | ||||||
|  |         ImageUtil.loadImage( this, url , imageView); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|     class BookListAdapter extends RecyclerView.Adapter<MyViewHolder> { |     class BookListAdapter extends RecyclerView.Adapter<MyViewHolder> { | ||||||
|  |  | ||||||
|  | @ -16,11 +16,12 @@ import butterknife.BindView; | ||||||
| 
 | 
 | ||||||
| public class Activity_cate_books extends Activity_base { | public class Activity_cate_books extends Activity_base { | ||||||
| 
 | 
 | ||||||
|  |     public static String EXTRNAME="catename"; | ||||||
|     @BindView(R.id.viewpager) |     @BindView(R.id.viewpager) | ||||||
|     ViewPager mViewpager; |     ViewPager mViewpager; | ||||||
|     @BindView(R.id.tab_layout) |     @BindView(R.id.tab_layout) | ||||||
|     SlidingTabLayout tabLayout; |     SlidingTabLayout tabLayout; | ||||||
| 
 |     String cate=""; | ||||||
|     private ArrayList<Fragment> mFragments; |     private ArrayList<Fragment> mFragments; | ||||||
|     ArrayList<View> mList; |     ArrayList<View> mList; | ||||||
|     String[] mTitle; |     String[] mTitle; | ||||||
|  | @ -39,8 +40,8 @@ public class Activity_cate_books extends Activity_base { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void setTitle() { |     protected void setTitle() { | ||||||
|         String title = getIntent().getStringExtra("CATENAME"); |         cate = getIntent().getStringExtra(EXTRNAME); | ||||||
|         this.setTitle(title); |         this.setTitle(cate); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | @ -52,12 +53,13 @@ public class Activity_cate_books extends Activity_base { | ||||||
|     void initTabs() { |     void initTabs() { | ||||||
| 
 | 
 | ||||||
|         if(mFragments ==null || mFragments.size() ==0){ |         if(mFragments ==null || mFragments.size() ==0){ | ||||||
|             mTitle = new String[]{"最热", "最新", "评分","完结"}; |             mTitle = new String[]{"新书", "连载", "完本"}; | ||||||
|             mFragments = new ArrayList<>(); |             mFragments = new ArrayList<>(); | ||||||
|             mFragments.add(new Fragment_booklist()); | 
 | ||||||
|             mFragments.add(new Fragment_booklist()); |             mFragments.add(  Fragment_booklist.newInstance(cate,1)); | ||||||
|             mFragments.add(new Fragment_booklist()); |             mFragments.add( Fragment_booklist.newInstance(cate,2)); | ||||||
|             mFragments.add(new Fragment_booklist()); |             mFragments.add(  Fragment_booklist.newInstance(cate,3)); | ||||||
|  | 
 | ||||||
|             Log.d(TAG,"initial fragments in tabs "); |             Log.d(TAG,"initial fragments in tabs "); | ||||||
|         } |         } | ||||||
|         Log.d(TAG,"set viewPager adapter "); |         Log.d(TAG,"set viewPager adapter "); | ||||||
|  |  | ||||||
|  | @ -42,6 +42,7 @@ import com.novelbook.android.service.MyIntentService; | ||||||
| import com.novelbook.android.service.ServiceDownload; | import com.novelbook.android.service.ServiceDownload; | ||||||
| import com.novelbook.android.utils.BookUtil; | import com.novelbook.android.utils.BookUtil; | ||||||
| import com.novelbook.android.utils.GsonUtil; | import com.novelbook.android.utils.GsonUtil; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
| import com.novelbook.android.utils.MyImageLoader; | import com.novelbook.android.utils.MyImageLoader; | ||||||
| import com.novelbook.android.utils.NovelParseUtil; | import com.novelbook.android.utils.NovelParseUtil; | ||||||
| import com.novelbook.android.utils.PageFactory; | import com.novelbook.android.utils.PageFactory; | ||||||
|  | @ -174,7 +175,7 @@ public class BookActivity extends   Activity_base { | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private MyImageLoader loader = new MyImageLoader(); | 
 | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 设置服务器传来的详细信息 |      * 设置服务器传来的详细信息 | ||||||
|  | @ -191,9 +192,7 @@ public class BookActivity extends   Activity_base { | ||||||
|         if (mNovel.getLastUpateTime() > 0) { |         if (mNovel.getLastUpateTime() > 0) { | ||||||
|             this.txtLatestCate.setText(new Date(mNovel.getLastUpateTime()).toString() + "\n" + txtLatestCate.getText()); |             this.txtLatestCate.setText(new Date(mNovel.getLastUpateTime()).toString() + "\n" + txtLatestCate.getText()); | ||||||
|         } |         } | ||||||
| 
 |         loadImageView(mNovel.getCover(),imageView); | ||||||
| 
 |  | ||||||
|         loader.displayImage(BookActivity.this, NetUtil.getCoverUrl(mNovel.getCover()), imageView); |  | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -373,7 +372,7 @@ public class BookActivity extends   Activity_base { | ||||||
|         }.start(); |         }.start(); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         showProgress(false, "正在加入到队列,请等待"); |         showProgressDialog(false, "正在加入到队列,请等待"); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -232,7 +232,7 @@ public class FileActivity extends Activity_base { | ||||||
|     private class SearchTextFileTask extends AsyncTask<Void,Void,Boolean>{ |     private class SearchTextFileTask extends AsyncTask<Void,Void,Boolean>{ | ||||||
|         @Override |         @Override | ||||||
|         protected void onPreExecute() { |         protected void onPreExecute() { | ||||||
|             showProgress(true,"正在扫描txt文件"); |             showProgressDialog(true,"正在扫描txt文件"); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         @Override |         @Override | ||||||
|  |  | ||||||
|  | @ -9,6 +9,8 @@ import android.content.res.Resources; | ||||||
| import android.graphics.pdf.PdfDocument; | import android.graphics.pdf.PdfDocument; | ||||||
| import android.net.Uri; | import android.net.Uri; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
|  | import android.os.Handler; | ||||||
|  | import android.os.Message; | ||||||
| import android.support.annotation.Nullable; | import android.support.annotation.Nullable; | ||||||
| import android.support.design.widget.TabLayout; | import android.support.design.widget.TabLayout; | ||||||
| import android.support.v4.app.Fragment; | import android.support.v4.app.Fragment; | ||||||
|  | @ -27,6 +29,7 @@ import android.widget.LinearLayout; | ||||||
| import android.widget.TextView; | import android.widget.TextView; | ||||||
| import android.widget.Toast; | import android.widget.Toast; | ||||||
| 
 | 
 | ||||||
|  | import com.bumptech.glide.Glide; | ||||||
| import com.google.gson.Gson; | import com.google.gson.Gson; | ||||||
| import com.novelbook.android.Activity_base; | import com.novelbook.android.Activity_base; | ||||||
| import com.novelbook.android.Activity_paihangbang; | import com.novelbook.android.Activity_paihangbang; | ||||||
|  | @ -39,8 +42,11 @@ import com.novelbook.android.db.Novel; | ||||||
| import com.novelbook.android.netsubscribe.BookSubscribe; | import com.novelbook.android.netsubscribe.BookSubscribe; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultListener; | import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub; | import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
|  | import com.novelbook.android.utils.MyImageLoader; | ||||||
| import com.novelbook.android.utils.OnItemClickListener; | import com.novelbook.android.utils.OnItemClickListener; | ||||||
| import com.novelbook.android.utils.PageFactory; | import com.novelbook.android.utils.PageFactory; | ||||||
|  | import com.youth.banner.loader.ImageLoader; | ||||||
| 
 | 
 | ||||||
| import org.litepal.LitePal; | import org.litepal.LitePal; | ||||||
| import org.w3c.dom.Text; | import org.w3c.dom.Text; | ||||||
|  | @ -63,9 +69,11 @@ public abstract class BasicFragment extends Fragment { | ||||||
|     private View rootView; |     private View rootView; | ||||||
|     protected abstract int getLayoutRes(); |     protected abstract int getLayoutRes(); | ||||||
|     protected abstract void initData(); |     protected abstract void initData(); | ||||||
|  |     protected abstract void fillData(); | ||||||
|     protected   void initListener(){} |     protected   void initListener(){} | ||||||
|     protected abstract void initViews(); |     protected abstract void initViews(); | ||||||
|     protected Gson gson = new Gson(); |     protected Gson gson = new Gson(); | ||||||
|  |   //  protected MyImageLoader imgloader = new MyImageLoader(); | ||||||
|    // Main2Activity activity; |    // Main2Activity activity; | ||||||
|     FragmentActivity activity; |     FragmentActivity activity; | ||||||
| 
 | 
 | ||||||
|  | @ -79,12 +87,15 @@ public abstract class BasicFragment extends Fragment { | ||||||
|        // Log.d(TAG,"fragment onCreate "); |        // Log.d(TAG,"fragment onCreate "); | ||||||
|        // activity =(Main2Activity)getActivity(); |        // activity =(Main2Activity)getActivity(); | ||||||
|         activity = getActivity(); |         activity = getActivity(); | ||||||
|         initData(); |         processArguments(); | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|         //			 QLog.getLogger().e(dTAG,TAG+" "+ "onCreate"); |         //			 QLog.getLogger().e(dTAG,TAG+" "+ "onCreate"); | ||||||
| //		mediumFontSize = activity.getMiddleSizeFont(); | //		mediumFontSize = activity.getMiddleSizeFont(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     protected abstract void processArguments(); | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     public View onCreateView(LayoutInflater inflater, ViewGroup container, |     public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||||||
|                              Bundle savedInstanceState) { |                              Bundle savedInstanceState) { | ||||||
|  | @ -95,7 +106,7 @@ public abstract class BasicFragment extends Fragment { | ||||||
|         ButterKnife.bind(this,view); |         ButterKnife.bind(this,view); | ||||||
| 
 | 
 | ||||||
|         initListener(); |         initListener(); | ||||||
| 
 |         initData(); | ||||||
|         initViews(); |         initViews(); | ||||||
|         return view; |         return view; | ||||||
|         // Inflate the layout for this fragment |         // Inflate the layout for this fragment | ||||||
|  | @ -110,6 +121,29 @@ public abstract class BasicFragment extends Fragment { | ||||||
| 
 | 
 | ||||||
|     public abstract void setFTag(); |     public abstract void setFTag(); | ||||||
| 
 | 
 | ||||||
|  |     Handler handler = new Handler() { | ||||||
|  |         @Override | ||||||
|  |         public void handleMessage(Message msg) { | ||||||
|  | 
 | ||||||
|  |             int wt = msg.what; | ||||||
|  | 
 | ||||||
|  |             if (msg.what == 1) { | ||||||
|  |                 fillData(); | ||||||
|  |             } else if (msg.what == 2)  // | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                 Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show(); | ||||||
|  |             } else if (msg.what == 3) { | ||||||
|  | 
 | ||||||
|  |                 Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             hideProgress(); | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     //--------------------------------------------------------------book list adapter------------------------------------------------ |     //--------------------------------------------------------------book list adapter------------------------------------------------ | ||||||
|  | @ -138,6 +172,7 @@ public abstract class BasicFragment extends Fragment { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     void showBookDetail(Novel book) { |     void showBookDetail(Novel book) { | ||||||
|  | 
 | ||||||
|         Intent intent = new Intent(activity, BookActivity.class); |         Intent intent = new Intent(activity, BookActivity.class); | ||||||
|         intent.putExtra(BookActivity.EXTRA_BOOK,book); |         intent.putExtra(BookActivity.EXTRA_BOOK,book); | ||||||
|         startActivity(intent); |         startActivity(intent); | ||||||
|  | @ -155,10 +190,12 @@ public abstract class BasicFragment extends Fragment { | ||||||
| 
 | 
 | ||||||
|                 Novel nv ; |                 Novel nv ; | ||||||
|                 nv = gson.fromJson(result,Novel.class); |                 nv = gson.fromJson(result,Novel.class); | ||||||
|                 nv.update(id); |                 if(id>0) { | ||||||
| 
 |                     nv.update(id); | ||||||
|                 nv= LitePal.find(Novel.class,id); |                     nv= LitePal.find(Novel.class,id); | ||||||
| 
 |                 }else { | ||||||
|  |                     nv.save(); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|                 PageFactory.getInstance().prepareBook(nv ); //打开本地小说内容 |                 PageFactory.getInstance().prepareBook(nv ); //打开本地小说内容 | ||||||
|                 try { |                 try { | ||||||
|  | @ -181,7 +218,7 @@ public abstract class BasicFragment extends Fragment { | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|     void showProgressDialog(boolean flag,String msg){ |     void showProgressDialog(boolean flag,String msg){ | ||||||
|         ((Activity_base) getActivity()).showProgress(flag,msg); |         ((Activity_base) getActivity()).showProgressDialog(flag,msg); | ||||||
|     } |     } | ||||||
|     void hideProgress(){ |     void hideProgress(){ | ||||||
|         ((Activity_base) getActivity()).hideProgress(); |         ((Activity_base) getActivity()).hideProgress(); | ||||||
|  | @ -261,5 +298,7 @@ public abstract class BasicFragment extends Fragment { | ||||||
|     startActivity(intent); |     startActivity(intent); | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 |     protected void loadImageView(String url, ImageView imageView){ | ||||||
|  |         ImageUtil.loadImage( getActivity(), url , imageView); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,109 @@ | ||||||
|  | package com.novelbook.android.Fragments; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.net.Uri; | ||||||
|  | import android.os.Bundle; | ||||||
|  | import android.support.v4.app.Fragment; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | 
 | ||||||
|  | import com.novelbook.android.R; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * A simple {@link Fragment} subclass. | ||||||
|  |  * Activities that contain this fragment must implement the | ||||||
|  |  * {@link BlankFragment.OnFragmentInteractionListener} interface | ||||||
|  |  * to handle interaction events. | ||||||
|  |  * Use the {@link BlankFragment#newInstance} factory method to | ||||||
|  |  * create an instance of this fragment. | ||||||
|  |  */ | ||||||
|  | public class BlankFragment extends Fragment { | ||||||
|  |     // 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"; | ||||||
|  | 
 | ||||||
|  |     // TODO: Rename and change types of parameters | ||||||
|  |     private String mParam1; | ||||||
|  |     private String mParam2; | ||||||
|  | 
 | ||||||
|  |     private OnFragmentInteractionListener mListener; | ||||||
|  | 
 | ||||||
|  |     public BlankFragment() { | ||||||
|  |         // 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 BlankFragment. | ||||||
|  |      */ | ||||||
|  |     // TODO: Rename and change types and number of parameters | ||||||
|  |     public static BlankFragment newInstance(String param1, String param2) { | ||||||
|  |         BlankFragment fragment = new BlankFragment(); | ||||||
|  |         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); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||||||
|  |                              Bundle savedInstanceState) { | ||||||
|  |         // Inflate the layout for this fragment | ||||||
|  |         return inflater.inflate(R.layout.fragment_blank2, container, false); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // TODO: Rename method, update argument and hook method into UI event | ||||||
|  |     public void onButtonPressed(Uri uri) { | ||||||
|  |         if (mListener != null) { | ||||||
|  |             mListener.onFragmentInteraction(uri); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onAttach(Context context) { | ||||||
|  |         super.onAttach(context); | ||||||
|  |         if (context instanceof OnFragmentInteractionListener) { | ||||||
|  |             mListener = (OnFragmentInteractionListener) context; | ||||||
|  |         } else { | ||||||
|  |             throw new RuntimeException(context.toString() | ||||||
|  |                     + " must implement OnFragmentInteractionListener"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onDetach() { | ||||||
|  |         super.onDetach(); | ||||||
|  |         mListener = null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * This interface must be implemented by activities that contain this | ||||||
|  |      * fragment to allow an interaction in this fragment to be communicated | ||||||
|  |      * to the activity and potentially other fragments contained in that | ||||||
|  |      * activity. | ||||||
|  |      * <p> | ||||||
|  |      * See the Android Training lesson <a href= | ||||||
|  |      * "http://developer.android.com/training/basics/fragments/communicating.html" | ||||||
|  |      * >Communicating with Other Fragments</a> for more information. | ||||||
|  |      */ | ||||||
|  |     public interface OnFragmentInteractionListener { | ||||||
|  |         // TODO: Update argument type and name | ||||||
|  |         void onFragmentInteraction(Uri uri); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -50,9 +50,19 @@ public class BookMarkFragment extends BasicFragment { | ||||||
|         bookMarksList = LitePal.where("novelId = ?", novelId+"").find(BookMarks.class); |         bookMarksList = LitePal.where("novelId = ?", novelId+"").find(BookMarks.class); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void initListener() { |     protected void initListener() { | ||||||
|         lv_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() { |         lv_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() { | ||||||
|  |  | ||||||
|  | @ -40,8 +40,18 @@ public class CatalogFragment extends BasicFragment { | ||||||
|         } |         } | ||||||
|         progressDialog.show(); |         progressDialog.show(); | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     private void dismissProgressDialog() { |     private void dismissProgressDialog() { | ||||||
|         if ( null != progressDialog) { |         if ( null != progressDialog) { | ||||||
|             progressDialog.dismiss(); |             progressDialog.dismiss(); | ||||||
|  |  | ||||||
|  | @ -124,8 +124,18 @@ public class Fragment_Shelf extends BasicFragment { | ||||||
| 
 | 
 | ||||||
|         initReceyleView(); |         initReceyleView(); | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  public void initReceyleView() { |  public void initReceyleView() { | ||||||
|      initData(); |      initData(); | ||||||
|    //  mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); |    //  mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); | ||||||
|  |  | ||||||
|  | @ -33,7 +33,16 @@ public class Fragment_bangdan extends BasicFragment { | ||||||
|         fragment.setArguments(args); |         fragment.setArguments(args); | ||||||
|         return fragment; |         return fragment; | ||||||
|     } |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     @Override |     @Override | ||||||
|     protected int getLayoutRes() { |     protected int getLayoutRes() { | ||||||
|        return R.layout.fragment_fragment_bangdan; |        return R.layout.fragment_fragment_bangdan; | ||||||
|  |  | ||||||
|  | @ -30,8 +30,18 @@ public class Fragment_bookStore extends BasicFragment { | ||||||
|     ArrayList<View> mList; |     ArrayList<View> mList; | ||||||
|     String[] mTitle; |     String[] mTitle; | ||||||
| 
 | 
 | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public static Fragment_bookStore newInstance(String param1, String param2) { |     public static Fragment_bookStore newInstance(String param1, String param2) { | ||||||
|         Fragment_bookStore fragment = new Fragment_bookStore(); |         Fragment_bookStore fragment = new Fragment_bookStore(); | ||||||
|         Bundle args = new Bundle(); |         Bundle args = new Bundle(); | ||||||
|  |  | ||||||
|  | @ -3,24 +3,45 @@ package com.novelbook.android.Fragments; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
| import android.support.v7.widget.LinearLayoutManager; | import android.support.v7.widget.LinearLayoutManager; | ||||||
| import android.support.v7.widget.RecyclerView; | import android.support.v7.widget.RecyclerView; | ||||||
|  | import android.util.Log; | ||||||
| import android.view.View; | import android.view.View; | ||||||
| import android.widget.Toast; | import android.widget.Toast; | ||||||
| 
 | 
 | ||||||
|  | import com.google.gson.JsonArray; | ||||||
|  | import com.google.gson.JsonElement; | ||||||
|  | import com.google.gson.JsonObject; | ||||||
|  | import com.google.gson.JsonParser; | ||||||
| import com.novelbook.android.R; | import com.novelbook.android.R; | ||||||
|  | import com.novelbook.android.bean.NovelBlock; | ||||||
| import com.novelbook.android.db.Novel; | import com.novelbook.android.db.Novel; | ||||||
|  | import com.novelbook.android.netsubscribe.BookSubscribe; | ||||||
|  | import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||||
|  | import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||||
|  | import com.novelbook.android.utils.Constants; | ||||||
| import com.novelbook.android.utils.OnItemClickListener; | import com.novelbook.android.utils.OnItemClickListener; | ||||||
| import com.novelbook.android.adapter.BookListAdapter; | import com.novelbook.android.adapter.BookListAdapter; | ||||||
| 
 | 
 | ||||||
|  | import org.json.JSONObject; | ||||||
|  | 
 | ||||||
|  | import java.nio.file.Path; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.Iterator; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import butterknife.BindView; | import butterknife.BindView; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| public class Fragment_booklist extends BasicFragment { | public class Fragment_booklist extends BasicFragment { | ||||||
|  |     private static final String EXTR_CATE ="cate" ; | ||||||
|  |     private static final String EXTR_PROGRESS ="progress" ; | ||||||
|     private BookListAdapter mAdapter; |     private BookListAdapter mAdapter; | ||||||
|     // private BookListAdapter mAdapter; |     // private BookListAdapter mAdapter; | ||||||
|     private List<Novel> mData;; |     private List<Novel> mData;; | ||||||
| 
 |     private String cate; | ||||||
|  |     private int progress; | ||||||
|  |     private int pageNo=1; | ||||||
|  |     private int totalCount; | ||||||
|  |     private int pageCount; | ||||||
|     @BindView(R.id.rvBooklist) |     @BindView(R.id.rvBooklist) | ||||||
|     RecyclerView rvBooklist; |     RecyclerView rvBooklist; | ||||||
| 
 | 
 | ||||||
|  | @ -28,30 +49,63 @@ public class Fragment_booklist extends BasicFragment { | ||||||
|         // Required empty public constructor |         // Required empty public constructor | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |     public static Fragment_booklist newInstance(String noveType,int progress) { | ||||||
|     public static Fragment_booklist newInstance(String param1, String param2) { |  | ||||||
|         Fragment_booklist fragment = new Fragment_booklist(); |         Fragment_booklist fragment = new Fragment_booklist(); | ||||||
|         Bundle args = new Bundle(); |         Bundle args = new Bundle(); | ||||||
| 
 |         args.putString(EXTR_CATE,noveType); | ||||||
|  |         args.putInt(EXTR_PROGRESS, progress); | ||||||
|         fragment.setArguments(args); |         fragment.setArguments(args); | ||||||
|         return fragment; |         return fragment; | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
|  |            cate = bundle.getString(EXTR_CATE); | ||||||
|  |            progress = bundle.getInt(EXTR_PROGRESS); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     @Override |         } | ||||||
|     protected int getLayoutRes() { |  | ||||||
|         return R.layout.fragment_fragment_booklist; |  | ||||||
|     } |     } | ||||||
|  |     public List<Novel> parserJsonArray(String strJson) { | ||||||
| 
 | 
 | ||||||
|  |         List<Novel> list = new ArrayList<Novel>(); | ||||||
|  |         //创建一个Gson对象 | ||||||
|  |         // Gson gson = new Gson(); | ||||||
|  |         //创建一个JsonParser | ||||||
|  |         JsonParser parser = new JsonParser(); | ||||||
|  |         //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象 | ||||||
|  |         JsonElement el = parser.parse(strJson); | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonObject | ||||||
|  |         JsonObject jsonObj = null; | ||||||
|  |         if (el.isJsonObject()) { | ||||||
|  |             jsonObj = el.getAsJsonObject(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonArray | ||||||
|  |         JsonArray jsonArray = null; | ||||||
|  |         if (el.isJsonArray()) { | ||||||
|  |             jsonArray = el.getAsJsonArray(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //遍历JsonArray对象 | ||||||
|  |         Iterator it = jsonArray.iterator(); | ||||||
|  |         while (it.hasNext()) { | ||||||
|  |             JsonElement e = (JsonElement) it.next(); | ||||||
|  |             //JsonElement转换为JavaBean对象 | ||||||
|  |             list.add((Novel) gson.fromJson(e, Novel.class)); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|     @Override |     @Override | ||||||
|     public void initData() { |     protected  void fillData() { | ||||||
| 
 | 
 | ||||||
|         mData =initData(mData,'Z'); |  | ||||||
|         mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { |         mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void onItemClick(View view, int position) { |             public void onItemClick(View view, int position) { | ||||||
|                   showBookDetail(mData.get(position) ); |                 showBookDetail(mData.get(position) ); | ||||||
|                 //  openBook(mData.get(position),mAdapter); |                 //  openBook(mData.get(position),mAdapter); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  | @ -67,11 +121,47 @@ public class Fragment_booklist extends BasicFragment { | ||||||
|                         Toast.LENGTH_SHORT).show(); |                         Toast.LENGTH_SHORT).show(); | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  |         initialBookList(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutRes() { | ||||||
|  |         return R.layout.fragment_fragment_booklist; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void initData() { | ||||||
|  | 
 | ||||||
|  |         showProgressDialog(true, "正在加载"); | ||||||
|  |         BookSubscribe.getCateNovelList(cate,pageNo,Constants.SEX,progress,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onSuccess(String result) { | ||||||
|  | 
 | ||||||
|  |                 // mFirstPage= gson.fromJson(result, FirstPage.class); | ||||||
|  |                 try { | ||||||
|  |                     JSONObject jsonObject = new JSONObject(result); | ||||||
|  |                     String resultstr = jsonObject.getString("ns"); | ||||||
|  |                     mData = parserJsonArray(resultstr); | ||||||
|  |                 } catch (Exception e) { | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|  |                 handler.sendEmptyMessage(1); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             @Override | ||||||
|  |             public void onFault(String errorMsg) { | ||||||
|  |                 //失败 | ||||||
|  |                 Log.d(TAG, "error on get firstpage: " + errorMsg); | ||||||
|  |                 handler.sendEmptyMessage(1); | ||||||
|  |             } | ||||||
|  |         }, getActivity())); | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|     @Override |     @Override | ||||||
|     public void initViews(){ |     public void initViews(){ | ||||||
|         initialBookList(); | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //----------------绑定列表 |     //----------------绑定列表 | ||||||
|  |  | ||||||
|  | @ -11,20 +11,29 @@ import android.support.v7.widget.LinearLayoutManager; | ||||||
| import android.support.v7.widget.RecyclerView; | import android.support.v7.widget.RecyclerView; | ||||||
| import android.util.Log; | import android.util.Log; | ||||||
| import android.view.View; | import android.view.View; | ||||||
|  | import android.widget.Button; | ||||||
| import android.widget.ImageView; | import android.widget.ImageView; | ||||||
| import android.widget.LinearLayout; | import android.widget.LinearLayout; | ||||||
|  | import android.widget.TextView; | ||||||
| import android.widget.Toast; | import android.widget.Toast; | ||||||
| 
 | 
 | ||||||
| import com.bumptech.glide.Glide; | import com.bumptech.glide.Glide; | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.google.gson.JsonArray; | ||||||
|  | import com.google.gson.JsonElement; | ||||||
|  | import com.google.gson.JsonObject; | ||||||
|  | import com.google.gson.JsonParser; | ||||||
| import com.novelbook.android.BookActivity; | import com.novelbook.android.BookActivity; | ||||||
| import com.novelbook.android.R; | import com.novelbook.android.R; | ||||||
| import com.novelbook.android.bean.FirstPage; | import com.novelbook.android.bean.FirstPage; | ||||||
|  | import com.novelbook.android.bean.NovelBlock; | ||||||
| import com.novelbook.android.db.Novel; | import com.novelbook.android.db.Novel; | ||||||
| import com.novelbook.android.db.SiteRule; | import com.novelbook.android.db.SiteRule; | ||||||
| import com.novelbook.android.netsubscribe.BookSubscribe; | import com.novelbook.android.netsubscribe.BookSubscribe; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultListener; | import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub; | import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||||
| import com.novelbook.android.utils.CyclePageIndicator; | import com.novelbook.android.utils.CyclePageIndicator; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
| import com.novelbook.android.utils.MyViewPager; | import com.novelbook.android.utils.MyViewPager; | ||||||
| import com.novelbook.android.utils.OnItemClickListener; | import com.novelbook.android.utils.OnItemClickListener; | ||||||
| import com.novelbook.android.adapter.BookListAdapter; | import com.novelbook.android.adapter.BookListAdapter; | ||||||
|  | @ -34,9 +43,11 @@ import com.youth.banner.Transformer; | ||||||
| import com.youth.banner.listener.OnBannerListener; | import com.youth.banner.listener.OnBannerListener; | ||||||
| import com.youth.banner.loader.ImageLoader; | import com.youth.banner.loader.ImageLoader; | ||||||
| 
 | 
 | ||||||
|  | import org.json.JSONObject; | ||||||
| import org.litepal.LitePal; | import org.litepal.LitePal; | ||||||
| 
 | 
 | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|  | import java.util.Iterator; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import butterknife.BindView; | import butterknife.BindView; | ||||||
|  | @ -50,7 +61,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|     private String mParam1; |     private String mParam1; | ||||||
|     private String mParam2; |     private String mParam2; | ||||||
|     //@BindView(R.id.llTuijian) |     //@BindView(R.id.llTuijian) | ||||||
|  //   LinearLayout llTuijian; |     //   LinearLayout llTuijian; | ||||||
|     @BindView(R.id.banner) |     @BindView(R.id.banner) | ||||||
|     Banner banner; |     Banner banner; | ||||||
|     @BindView(R.id.dot_horizontal) |     @BindView(R.id.dot_horizontal) | ||||||
|  | @ -59,21 +70,43 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|     MyViewPager mViewpagerTuijian; |     MyViewPager mViewpagerTuijian; | ||||||
|     //@BindView(R.id.titleIndictator) |     //@BindView(R.id.titleIndictator) | ||||||
|     // TitlePageIndicator titleIndicator; |     // TitlePageIndicator titleIndicator; | ||||||
|  | 
 | ||||||
|  |     @BindView(R.id.imageBlock1) | ||||||
|  |     ImageView imageViewBlock1; | ||||||
|  |     @BindView(R.id.imageBlock2) | ||||||
|  |     ImageView imageViewBlock2; | ||||||
|  |     @BindView(R.id.imageBlock3) | ||||||
|  |     ImageView imageViewBlock3; | ||||||
|  | 
 | ||||||
|  |     @BindView(R.id.tvBlock1) | ||||||
|  |     TextView tvBlock1; | ||||||
|  |     @BindView(R.id.tvBlock2) | ||||||
|  |     TextView tvBlock2; | ||||||
|  |     @BindView(R.id.tvBlock3) | ||||||
|  |     TextView tvBlock3; | ||||||
|  |     @BindView(R.id.buttonMore1) | ||||||
|  |     Button btnMore1; | ||||||
|  |     @BindView(R.id.buttonMore2) | ||||||
|  |     Button btnMore2; | ||||||
|  |     @BindView(R.id.buttonMore3) | ||||||
|  |     Button btnMore3; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     private List<Fragment> mFragments; |     private List<Fragment> mFragments; | ||||||
|     private ArrayList<View> mList; |     private ArrayList<View> mList; | ||||||
|     // String[] mTitle; |     // String[] mTitle; | ||||||
| 
 |     private List<NovelBlock> mBlocks; | ||||||
|     private ArrayList<String> list_path; |     private List<String> list_path; | ||||||
|     private ArrayList<String> list_title; |     private List<String> list_title; | ||||||
| 
 | 
 | ||||||
|     private FirstPage mFirstPage; |     private FirstPage mFirstPage; | ||||||
|  | 
 | ||||||
|     public Fragment_jingxuan() { |     public Fragment_jingxuan() { | ||||||
|         // Required empty public constructor |         // Required empty public constructor | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     public static Fragment_jingxuan newInstance(String param1, String param2) { |     public static Fragment_jingxuan newInstance(String param1, String param2) { | ||||||
|         Fragment_jingxuan fragment = new Fragment_jingxuan(); |         Fragment_jingxuan fragment = new Fragment_jingxuan(); | ||||||
|         Bundle args = new Bundle(); |         Bundle args = new Bundle(); | ||||||
|  | @ -83,27 +116,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     Handler handler = new Handler() { |  | ||||||
|         @Override |  | ||||||
|         public void handleMessage(Message msg) { |  | ||||||
| 
 | 
 | ||||||
|             int wt = msg.what; |  | ||||||
| 
 |  | ||||||
|             if (msg.what == 1) { |  | ||||||
| 
 |  | ||||||
|             } else if (msg.what == 2)  // |  | ||||||
|             { |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|                 Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show(); |  | ||||||
|             } else if (msg.what == 3) { |  | ||||||
| 
 |  | ||||||
|                 Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show(); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|         } |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | @ -111,14 +124,55 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|         return R.layout.fragment_jingxuan; |         return R.layout.fragment_jingxuan; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public List<NovelBlock> parserJsonArray(String strJson) { | ||||||
|  | 
 | ||||||
|  |         List<NovelBlock> list = new ArrayList<NovelBlock>(); | ||||||
|  |         //创建一个Gson对象 | ||||||
|  |         // Gson gson = new Gson(); | ||||||
|  |         //创建一个JsonParser | ||||||
|  |         JsonParser parser = new JsonParser(); | ||||||
|  |         //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象 | ||||||
|  |         JsonElement el = parser.parse(strJson); | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonObject | ||||||
|  |         JsonObject jsonObj = null; | ||||||
|  |         if (el.isJsonObject()) { | ||||||
|  |             jsonObj = el.getAsJsonObject(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonArray | ||||||
|  |         JsonArray jsonArray = null; | ||||||
|  |         if (el.isJsonArray()) { | ||||||
|  |             jsonArray = el.getAsJsonArray(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //遍历JsonArray对象 | ||||||
|  |         Iterator it = jsonArray.iterator(); | ||||||
|  |         while (it.hasNext()) { | ||||||
|  |             JsonElement e = (JsonElement) it.next(); | ||||||
|  |             //JsonElement转换为JavaBean对象 | ||||||
|  |             list.add((NovelBlock) gson.fromJson(e, NovelBlock.class)); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void initData() { |     public void initData() { | ||||||
| 
 | 
 | ||||||
|         BookSubscribe.getFirstPage( new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { |         showProgressDialog(true, "正在加载"); | ||||||
|  |         BookSubscribe.getFirstPage(new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||||
|             @Override |             @Override | ||||||
|             public void onSuccess(String result) { |             public void onSuccess(String result) { | ||||||
| 
 | 
 | ||||||
|                 mFirstPage= gson.fromJson(result, FirstPage.class); |                 // mFirstPage= gson.fromJson(result, FirstPage.class); | ||||||
|  |                 try { | ||||||
|  |                     JSONObject jsonObject = new JSONObject(result); | ||||||
|  |                     String resultstr = jsonObject.getString("blocks"); | ||||||
|  |                     mBlocks = parserJsonArray(resultstr); | ||||||
|  |                 } catch (Exception e) { | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|                 handler.sendEmptyMessage(1); |                 handler.sendEmptyMessage(1); | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
|  | @ -126,49 +180,92 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|             @Override |             @Override | ||||||
|             public void onFault(String errorMsg) { |             public void onFault(String errorMsg) { | ||||||
|                 //失败 |                 //失败 | ||||||
|                 Log.d(TAG,"error on get firstpage: "+errorMsg); |                 Log.d(TAG, "error on get firstpage: " + errorMsg); | ||||||
|  |                 handler.sendEmptyMessage(1); | ||||||
|             } |             } | ||||||
|         },getActivity())); |         }, getActivity())); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         mHotNewData_l = initData(mHotNewData_l,'B'); |     } | ||||||
|         mHotNewData_g= initData(mHotNewData_g,'D'); |     protected   void processArguments(){ | ||||||
|         mHotLianZaiData_l= initData(mHotLianZaiData_l,'C'); |         if (getArguments() != null) { | ||||||
|         mHotLianZaiData_g=initData(mHotLianZaiData_g,'D'); |             Bundle bundle = getArguments() ; | ||||||
|         mFinishedData_l=initData(mFinishedData_l,'A'); | 
 | ||||||
|         mFinishedData_g=initData(mFinishedData_g,'G'); | 
 | ||||||
| 
 | 
 | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|     @Override |     @Override | ||||||
|     public void initViews(){ |     protected  void fillData() { | ||||||
|  |         /* | ||||||
|  |         mHotNewData_l = initData(mHotNewData_l, 'B'); | ||||||
|  |         mHotNewData_g = initData(mHotNewData_g, 'D'); | ||||||
|  |         mHotLianZaiData_l = initData(mHotLianZaiData_l, 'C'); | ||||||
|  |         mHotLianZaiData_g = initData(mHotLianZaiData_g, 'D'); | ||||||
|  |         mFinishedData_l = initData(mFinishedData_l, 'A'); | ||||||
|  |         mFinishedData_g = initData(mFinishedData_g, 'G'); | ||||||
|  |         */ | ||||||
|  |             if(mBlocks ==null || mBlocks.size() ==0){ | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             if(mBlocks.size()>0) { | ||||||
|  | 
 | ||||||
|  |                 mHotNewData_l = mBlocks.get(0).getNs(); | ||||||
|  |                 tvBlock1.setText(mBlocks.get(0).getName()); | ||||||
|  |                 loadImageView(mBlocks.get(0).getIcon(),imageViewBlock1); | ||||||
|  |                 btnMore1.setTag(mBlocks.get(0).getName()); | ||||||
|  |             } | ||||||
|  |       //  mHotNewData_g = initData(mHotNewData_g, 'D'); | ||||||
|  |         if(mBlocks.size()>1) { | ||||||
|  |             mHotLianZaiData_l = mBlocks.get(1).getNs();//initData(mHotLianZaiData_l, 'C'); | ||||||
|  |             tvBlock2.setText(mBlocks.get(1).getName()); | ||||||
|  |             loadImageView(mBlocks.get(1).getIcon(),imageViewBlock2); | ||||||
|  |             btnMore2.setTag(mBlocks.get(1).getName()); | ||||||
|  |         } | ||||||
|  |       //  mHotLianZaiData_g =  initData(mHotLianZaiData_g, 'D'); | ||||||
|  |         // mFinishedData_l =  mBlocks.get(2).getNs(); //initData(mFinishedData_l, 'A'); | ||||||
|  |         if(mBlocks.size()>2) { | ||||||
|  |             mFinishedData_g = mBlocks.get(2).getNs();// initData(mFinishedData_g, 'G'); | ||||||
|  |             tvBlock3.setText(mBlocks.get(2).getName()); | ||||||
|  |             loadImageView(mBlocks.get(2).getIcon(),imageViewBlock3); | ||||||
|  |             btnMore3.setTag(mBlocks.get(2).getName()); | ||||||
|  |         } | ||||||
|         testBanner(banner, this); |         testBanner(banner, this); | ||||||
|         initTuijianPagers(); |  | ||||||
|         initialBookList(); |         initialBookList(); | ||||||
|  |         initTuijianPagers(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void initViews() { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void setFTag() { |     public void setFTag() { | ||||||
|         TAG ="com.novelbook.android.Fragments.Fragment_jingxuan"; |         TAG = "com.novelbook.android.Fragments.Fragment_jingxuan"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @OnClick({R.id.buttonMoreHot,R.id.buttonMoreLianzai,R.id.buttonMoreTuijian,R.id.buttonMoreWanben |     @OnClick({R.id.buttonMore1, R.id.buttonMore2, R.id.buttonMoreTuijian, R.id.buttonMore3 | ||||||
|             ,R.id.buttonCatePingfen,R.id.buttonCateRegeng ,R.id.buttonCateTuijian,R.id.buttonCateShoucang,R.id.buttonCateWanjie |             , R.id.buttonCatePingfen, R.id.buttonCateRegeng, R.id.buttonCateTuijian, R.id.buttonCateShoucang, R.id.buttonCateWanjie | ||||||
|     }) |     }) | ||||||
|     void bubmitButton(View view) { |     void bubmitButton(View view) { | ||||||
| 
 | 
 | ||||||
|         switch (view.getId()) { |         switch (view.getId()) { | ||||||
|             case R.id.buttonMoreLianzai: |             case R.id.buttonMore1: | ||||||
|                 showPaihangbang("最热"); |                 showPaihangbang(btnMore1.getTag().toString()); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.buttonMoreTuijian: |             case R.id.buttonMoreTuijian: | ||||||
|                 showPaihangbang("推荐"); |                 showPaihangbang("推荐"); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.buttonMoreWanben: |             case R.id.buttonMore2: | ||||||
|                 showPaihangbang("完结"); |                 showPaihangbang(btnMore2.getTag().toString()); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.buttonMoreHot: |             case R.id.buttonMore3: | ||||||
|                 showPaihangbang("新书"); |                 showPaihangbang(btnMore3.getTag().toString()); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.buttonCatePingfen: |             case R.id.buttonCatePingfen: | ||||||
|                 showPaihangbang("评分"); |                 showPaihangbang("评分"); | ||||||
|  | @ -187,13 +284,21 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|                 break; |                 break; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     void testBanner(Banner banner,OnBannerListener listioner) { | 
 | ||||||
|  |     void testBanner(Banner banner, OnBannerListener listioner) { | ||||||
| 
 | 
 | ||||||
|         //放图片地址的集合 |         //放图片地址的集合 | ||||||
|         list_path = new ArrayList<>(); |         list_path = mBlocks.get(0).getPictures();//new ArrayList<String>();// mBlocks.get(0).getPictures() ; | ||||||
|         //放标题的集合 |         //放标题的集合 | ||||||
|         list_title = new ArrayList<>(); |         list_title = new ArrayList<>(); | ||||||
| 
 | 
 | ||||||
|  |         for (Novel nv : mBlocks.get(0).getNs()) { | ||||||
|  |             list_title.add(nv.getName()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         /* | ||||||
|         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg"); |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg"); | ||||||
|         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg"); |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg"); | ||||||
|         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg"); |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg"); | ||||||
|  | @ -202,10 +307,11 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|         list_title.add("天天向上"); |         list_title.add("天天向上"); | ||||||
|         list_title.add("热爱劳动"); |         list_title.add("热爱劳动"); | ||||||
|         list_title.add("不搞对象"); |         list_title.add("不搞对象"); | ||||||
|  |         */ | ||||||
|         //设置内置样式,共有六种可以点入方法内逐一体验使用。 |         //设置内置样式,共有六种可以点入方法内逐一体验使用。 | ||||||
|         banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); |         banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); | ||||||
|         //设置图片加载器,图片加载器在下方 |         //设置图片加载器,图片加载器在下方 | ||||||
|         banner.setImageLoader(new MyLoader()); |         banner.setImageLoader(ImageUtil.loader); | ||||||
|         //设置图片网址或地址的集合 |         //设置图片网址或地址的集合 | ||||||
|         banner.setImages(list_path); |         banner.setImages(list_path); | ||||||
|         //设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验 |         //设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验 | ||||||
|  | @ -229,14 +335,10 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void OnBannerClick(int position) { |     public void OnBannerClick(int position) { | ||||||
|         showShudanDetail(position); |         Novel nv = mBlocks.get(0).getNs().get(position); | ||||||
|     } |         showBookDetail(nv); | ||||||
|     //自定义的图片加载器 | 
 | ||||||
|     private class MyLoader extends ImageLoader { |         //   showShudanDetail(position); | ||||||
|         @Override |  | ||||||
|         public void displayImage(Context context, Object path, ImageView imageView) { |  | ||||||
|             Glide.with(context).load((String) path).into(imageView); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -249,13 +351,12 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|     void initTuijianPagers() { |     void initTuijianPagers() { | ||||||
| 
 | 
 | ||||||
|         if (mFragments == null || mFragments.size() == 0) { |         if (mFragments == null || mFragments.size() == 0) { | ||||||
|          //   mTitle = new String[]{"精选", "榜单", "书单"}; |             //   mTitle = new String[]{"精选", "榜单", "书单"}; | ||||||
|             mFragments = new ArrayList<>(); |             mFragments = new ArrayList<>(); | ||||||
|             mFragments.add(new Fragment_jingxuan_tuijian()); |             for(NovelBlock block : mBlocks ){ | ||||||
|             mFragments.add(new Fragment_jingxuan_tuijian()); |                 mFragments.add(Fragment_jingxuan_tuijian.newInstance(block.getNs())); | ||||||
|             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 "); |             Log.d(TAG, "initial fragments in tabs "); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | @ -273,10 +374,10 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text |             //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text | ||||||
|          //   @Override |             //   @Override | ||||||
|           //  public CharSequence getPageTitle(int position) { |             //  public CharSequence getPageTitle(int position) { | ||||||
|            //     return mTitle[position]; |             //     return mTitle[position]; | ||||||
|           //  } |             //  } | ||||||
|         }; |         }; | ||||||
|         mViewpagerTuijian.setAdapter(mAdapter); |         mViewpagerTuijian.setAdapter(mAdapter); | ||||||
|         mViewpagerTuijian.addOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, mFragments.size())); |         mViewpagerTuijian.addOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, mFragments.size())); | ||||||
|  | @ -284,199 +385,179 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     //---------------------------------------------------book cate list-------------------------------begin |     //---------------------------------------------------book cate list-------------------------------begin | ||||||
| 
 | 
 | ||||||
|    // private BookListAdapter mAdapter; |     // private BookListAdapter mAdapter; | ||||||
|     private List<Novel>  mHotNewData_l,mHotNewData_g,mHotLianZaiData_l, mHotLianZaiData_g,mFinishedData_l, mFinishedData_g; |     private List<Novel> mHotNewData_l, mHotNewData_g, mHotLianZaiData_l, mHotLianZaiData_g, mFinishedData_l, mFinishedData_g; | ||||||
| 
 | 
 | ||||||
|     @BindView(R.id.rvHotNewL) RecyclerView  rvHotNewL; |     @BindView(R.id.rvHotNewL) | ||||||
|     @BindView(R.id.rvHotNewG) RecyclerView  rvHotNewG; |     RecyclerView rvHotNewL; | ||||||
|     @BindView(R.id.rvLianZaiG) RecyclerView  rvLianZaiG; |     @BindView(R.id.rvHotNewG) | ||||||
|     @BindView(R.id.rvLianZaiL) RecyclerView  rvLianZaiL; |     RecyclerView rvHotNewG; | ||||||
|     @BindView(R.id.rvFinishL) RecyclerView  rvFinishL; |     @BindView(R.id.rvLianZaiG) | ||||||
|     @BindView(R.id.rvFinishG) RecyclerView  rvFinishG; |     RecyclerView rvLianZaiG; | ||||||
|  |     @BindView(R.id.rvLianZaiL) | ||||||
|  |     RecyclerView rvLianZaiL; | ||||||
|  |     @BindView(R.id.rvFinishL) | ||||||
|  |     RecyclerView rvFinishL; | ||||||
|  |     @BindView(R.id.rvFinishG) | ||||||
|  |     RecyclerView rvFinishG; | ||||||
| 
 | 
 | ||||||
|     void initialBookList() { |     void initialBookList() { | ||||||
| 
 | 
 | ||||||
|         OnItemClickListener onItemClickListener =new  OnItemClickListener() |         OnItemClickListener onItemClickListener = new OnItemClickListener() { | ||||||
|         { |  | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void onItemClick(View view, int position) |             public void onItemClick(View view, int position) { | ||||||
|             { |  | ||||||
|                 showBookDetail(mHotNewData_l.get(position)); |                 showBookDetail(mHotNewData_l.get(position)); | ||||||
|                // openBook(mHotNewData_l.get(position),null); |                 // openBook(mHotNewData_l.get(position),null); | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void onItemLongClick(View view, int position) |             public void onItemLongClick(View view, int position) { | ||||||
|             { |  | ||||||
|                 // initDialog(position); |                 // initDialog(position); | ||||||
|                 // mAdapter.removeData(position); |                 // mAdapter.removeData(position); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
|             public void onLinearOutClick(View view,  int position ,int llId) { |             public void onLinearOutClick(View view, int position, int llId) { | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|         }  ; |         }; | ||||||
|         rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); |         if(mHotNewData_l!=null) { | ||||||
|         rvHotNewL.setAdapter(new BookListAdapter(activity,mHotNewData_l,R.layout.recycle_list_item_horizon ,onItemClickListener)); |             rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); | ||||||
|  |             rvHotNewL.setAdapter(new BookListAdapter(activity, mHotNewData_l, R.layout.recycle_list_item_horizon, onItemClickListener)); | ||||||
|  |         } | ||||||
|  |         if(mHotNewData_g!=null) { | ||||||
|  |             rvHotNewG.setLayoutManager(new GridLayoutManager(activity, 3)); | ||||||
| 
 | 
 | ||||||
|         rvHotNewG.setLayoutManager(new GridLayoutManager(activity,3)); |             rvHotNewG.setAdapter(new BookListAdapter(activity, mHotNewData_g, R.layout.recycle_list_item, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|         rvHotNewG.setAdapter(new BookListAdapter(activity,mHotNewData_g,R.layout.recycle_list_item,new OnItemClickListener() |                 @Override | ||||||
|         { |                 public void onItemClick(View view, int position) { | ||||||
|  |                     showBookDetail(mHotNewData_g.get(position)); | ||||||
| 
 | 
 | ||||||
|             @Override |                     // openBook( mHotNewData_g.get(position) ,null); | ||||||
|             public void onItemClick(View view, int position) |                 } | ||||||
|             { |  | ||||||
|                 showBookDetail(mHotNewData_g.get(position)); |  | ||||||
| 
 | 
 | ||||||
|                 // openBook( mHotNewData_g.get(position) ,null); |                 @Override | ||||||
|             } |                 public void onItemLongClick(View view, int position) { | ||||||
|  |                     // initDialog(position); | ||||||
|  |                     // mAdapter.removeData(position); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onItemLongClick(View view, int position) |                 public void onLinearOutClick(View view, int position, int llId) { | ||||||
|             { |  | ||||||
|                 // initDialog(position); |  | ||||||
|                 // mAdapter.removeData(position); |  | ||||||
|             } |  | ||||||
|             @Override |  | ||||||
|             public void onLinearOutClick(View view,  int position ,int llId) { |  | ||||||
| 
 | 
 | ||||||
|              } |                 } | ||||||
|         })); |             })); | ||||||
|  |         } | ||||||
|  |         if(rvLianZaiL!=null) { | ||||||
|  |             rvLianZaiL.setLayoutManager(new LinearLayoutManager(this.activity)); | ||||||
| 
 | 
 | ||||||
|         rvLianZaiL.setLayoutManager(new LinearLayoutManager(this.activity)); |             rvLianZaiL.setAdapter(new BookListAdapter(activity, mHotLianZaiData_l, R.layout.recycle_list_item_horizon, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|         rvLianZaiL.setAdapter(new BookListAdapter(activity,mHotLianZaiData_l,R.layout.recycle_list_item_horizon,new OnItemClickListener() |                 @Override | ||||||
|         { |                 public void onItemClick(View view, int position) { | ||||||
| 
 |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | ||||||
|             @Override |  | ||||||
|             public void onItemClick(View view, int position) |  | ||||||
|             { |  | ||||||
|                 //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|                 showBookDetail(mHotLianZaiData_l.get(position)); |                     showBookDetail(mHotLianZaiData_l.get(position)); | ||||||
|                 // openBook( mHotLianZaiData_l.get(position) ,null); |                     // openBook( mHotLianZaiData_l.get(position) ,null); | ||||||
|             } |                 } | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onItemLongClick(View view, int position) |                 public void onItemLongClick(View view, int position) { | ||||||
|             { |                     // initDialog(position); | ||||||
|                 // initDialog(position); |                     // mAdapter.removeData(position); | ||||||
|                 // mAdapter.removeData(position); |                 } | ||||||
|             } |  | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onLinearOutClick(View view, int position ,int llId) { |                 public void onLinearOutClick(View view, int position, int llId) { | ||||||
| 
 | 
 | ||||||
|             } |                 } | ||||||
|         })); |             })); | ||||||
|  |         } | ||||||
|  |         if(mHotLianZaiData_g!=null) { | ||||||
|  |             rvLianZaiG.setLayoutManager(new GridLayoutManager(activity, 3)); | ||||||
| 
 | 
 | ||||||
|         rvLianZaiG.setLayoutManager(new GridLayoutManager(activity,3)); |             rvLianZaiG.setAdapter(new BookListAdapter(activity, mHotLianZaiData_g, R.layout.recycle_list_item, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|         rvLianZaiG.setAdapter(new BookListAdapter(activity,mHotLianZaiData_g,R.layout.recycle_list_item,new OnItemClickListener() |                 @Override | ||||||
|         { |                 public void onItemClick(View view, int position) { | ||||||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | ||||||
| 
 | 
 | ||||||
|             @Override |                     showBookDetail(mHotLianZaiData_g.get(position)); | ||||||
|             public void onItemClick(View view, int position) |  | ||||||
|             { |  | ||||||
|               //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); |  | ||||||
| 
 | 
 | ||||||
|                 showBookDetail(mHotLianZaiData_g.get(position)); |                     // openBook( mHotLianZaiData_g.get(position) ,null); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|                 // openBook( mHotLianZaiData_g.get(position) ,null); |                 @Override | ||||||
|             } |                 public void onItemLongClick(View view, int position) { | ||||||
|  |                     // initDialog(position); | ||||||
|  |                     // mAdapter.removeData(position); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onItemLongClick(View view, int position) |                 public void onLinearOutClick(View view, int position, int llId) { | ||||||
|             { |  | ||||||
|                 // initDialog(position); |  | ||||||
|                 // mAdapter.removeData(position); |  | ||||||
|             } |  | ||||||
|             @Override |  | ||||||
|             public void onLinearOutClick(View view,  int position ,int llId) { |  | ||||||
| 
 | 
 | ||||||
|             } |                 } | ||||||
|         })); |             })); | ||||||
|  |         } | ||||||
|  |         if(mFinishedData_l!=null) { | ||||||
|  |             rvFinishL.setLayoutManager(new LinearLayoutManager(this.activity)); | ||||||
|  |             rvFinishL.setAdapter(new BookListAdapter(activity, mFinishedData_l, R.layout.recycle_list_item_horizon, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|         rvFinishL.setLayoutManager(new LinearLayoutManager(this.activity)); |                 @Override | ||||||
|         rvFinishL.setAdapter(new BookListAdapter(activity,mFinishedData_l,R.layout.recycle_list_item_horizon,new OnItemClickListener() |                 public void onItemClick(View view, int position) { | ||||||
|         { |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | ||||||
| 
 | 
 | ||||||
|             @Override |                     showBookDetail(mFinishedData_l.get(position)); | ||||||
|             public void onItemClick(View view, int position) |  | ||||||
|             { |  | ||||||
|                 //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); |  | ||||||
| 
 | 
 | ||||||
|                 showBookDetail(mFinishedData_l.get(position)); |                     //  openBook( mFinishedData_l.get(position) ,null); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|                 //  openBook( mFinishedData_l.get(position) ,null); |                 @Override | ||||||
|             } |                 public void onItemLongClick(View view, int position) { | ||||||
|  |                     // initDialog(position); | ||||||
|  |                     // mAdapter.removeData(position); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onItemLongClick(View view, int position) |                 public void onLinearOutClick(View view, int position, int llId) { | ||||||
|             { |  | ||||||
|                 // initDialog(position); |  | ||||||
|                 // mAdapter.removeData(position); |  | ||||||
|             } |  | ||||||
|             @Override |  | ||||||
|             public void onLinearOutClick(View view,  int position ,int llId) { |  | ||||||
| 
 | 
 | ||||||
|             } |                 } | ||||||
|         })); |             })); | ||||||
|  |         } | ||||||
|  |         if(mFinishedData_g!=null) { | ||||||
|  |             rvFinishG.setLayoutManager(new GridLayoutManager(activity, 3)); | ||||||
| 
 | 
 | ||||||
|         rvFinishG.setLayoutManager(new GridLayoutManager(activity,3)); |             rvFinishG.setAdapter(new BookListAdapter(activity, mFinishedData_g, R.layout.recycle_list_item, new OnItemClickListener() { | ||||||
| 
 | 
 | ||||||
|         rvFinishG.setAdapter(new BookListAdapter(activity,mFinishedData_g,R.layout.recycle_list_item ,new OnItemClickListener() |                 @Override | ||||||
|         { |                 public void onItemClick(View view, int position) { | ||||||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | ||||||
| 
 | 
 | ||||||
|             @Override |                     showBookDetail(mFinishedData_g.get(position)); | ||||||
|             public void onItemClick(View view, int position) |  | ||||||
|             { |  | ||||||
|                 //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); |  | ||||||
| 
 | 
 | ||||||
|                 showBookDetail(mFinishedData_g.get(position)); |                     // openBook( mFinishedData_g.get(position) ,null); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|                 // openBook( mFinishedData_g.get(position) ,null); |                 @Override | ||||||
|             } |                 public void onItemLongClick(View view, int position) { | ||||||
|  |                     // initDialog(position); | ||||||
|  |                     // mAdapter.removeData(position); | ||||||
|  |                 } | ||||||
| 
 | 
 | ||||||
|             @Override |                 @Override | ||||||
|             public void onItemLongClick(View view, int position) |                 public void onLinearOutClick(View view, int position, int llId) { | ||||||
|             { |  | ||||||
|                 // initDialog(position); |  | ||||||
|                 // mAdapter.removeData(position); |  | ||||||
|             } |  | ||||||
|             @Override |  | ||||||
|             public void onLinearOutClick(View view,  int position ,int llId) { |  | ||||||
| 
 |  | ||||||
|             } |  | ||||||
|         })); |  | ||||||
| 
 | 
 | ||||||
|  |                 } | ||||||
|  |             })); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| class BannerListioner1 implements OnBannerListener { |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void OnBannerClick(int position) { |  | ||||||
|         Log.i("第一个banner", "你点了第一个banner 第" + position + "张轮播图"); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| class BannerListioner2 implements OnBannerListener { |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void OnBannerClick(int position) { |  | ||||||
|         Log.i("第二个banner", "你点了第二个banner 第"+position+"张轮播图"); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -1,30 +1,78 @@ | ||||||
| package com.novelbook.android.Fragments; | package com.novelbook.android.Fragments; | ||||||
| 
 | 
 | ||||||
|  | import android.content.Intent; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
| import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||||
| import android.view.View; | import android.view.View; | ||||||
| import android.view.ViewGroup; | import android.view.ViewGroup; | ||||||
|  | import android.widget.ImageView; | ||||||
|  | import android.widget.TextView; | ||||||
| 
 | 
 | ||||||
| import com.novelbook.android.R; | import com.novelbook.android.R; | ||||||
|  | import com.novelbook.android.db.Novel; | ||||||
| 
 | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import butterknife.BindView; | ||||||
| import butterknife.ButterKnife; | import butterknife.ButterKnife; | ||||||
| import butterknife.OnClick; | import butterknife.OnClick; | ||||||
| 
 | 
 | ||||||
| public class Fragment_jingxuan_tuijian extends BasicFragment { | public class Fragment_jingxuan_tuijian extends BasicFragment { | ||||||
| 
 | 
 | ||||||
|  |     @BindView(R.id.imageGallary1) | ||||||
|  |     ImageView imageView1; | ||||||
|  |     @BindView(R.id.imageGallary2) | ||||||
|  |     ImageView imageView2; | ||||||
|  |     @BindView(R.id.imageGallary3) | ||||||
|  |     ImageView imageView3; | ||||||
|  |     @BindView(R.id.tvGallaryName1) | ||||||
|  |     TextView tvName1; | ||||||
|  |     @BindView(R.id.tvGallaryName2) | ||||||
|  |     TextView tvName2; | ||||||
|  |     @BindView(R.id.tvGallaryName3) | ||||||
|  |     TextView tvName3; | ||||||
| 
 | 
 | ||||||
|  |     private Novel novel1,novel2,novel3; | ||||||
| 
 | 
 | ||||||
|  |     private static String EXTR_NV1="nv1"; | ||||||
|  |     private static String EXTR_NV2="nv2"; | ||||||
|  |     private static String EXTR_NV3="nv3"; | ||||||
| 
 | 
 | ||||||
|     public static Fragment_jingxuan_tuijian newInstance(String param1, String param2) { |     public static Fragment_jingxuan_tuijian newInstance(List<Novel> novels) { | ||||||
|         Fragment_jingxuan_tuijian fragment = new Fragment_jingxuan_tuijian(); |         Fragment_jingxuan_tuijian fragment = new Fragment_jingxuan_tuijian(); | ||||||
|         Bundle args = new Bundle(); |         Bundle args = new Bundle(); | ||||||
| 
 | 
 | ||||||
|  |         args.putSerializable(EXTR_NV1,novels.get(0)); | ||||||
|  |         args.putSerializable(EXTR_NV2,novels.get(1)); | ||||||
|  |         args.putSerializable(EXTR_NV3,novels.get(2)); | ||||||
|  | 
 | ||||||
|         fragment.setArguments(args); |         fragment.setArguments(args); | ||||||
|         return fragment; |         return fragment; | ||||||
|     } |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             novel1 = (Novel) bundle.getSerializable(EXTR_NV1); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |             novel2= (Novel) bundle.getSerializable(EXTR_NV2); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             novel3 = (Novel) bundle.getSerializable(EXTR_NV3); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|     @Override |     @Override | ||||||
|     public View onCreateView(LayoutInflater inflater, ViewGroup container, |     public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||||||
|                              Bundle savedInstanceState) { |                              Bundle savedInstanceState) { | ||||||
|  | @ -34,19 +82,20 @@ public class Fragment_jingxuan_tuijian extends BasicFragment { | ||||||
|         ButterKnife.bind(this, view); |         ButterKnife.bind(this, view); | ||||||
|         return view; |         return view; | ||||||
|     } |     } | ||||||
| 
 | */ | ||||||
|     @OnClick({R.id.llGallary1,R.id.llGallary2,R.id.llGallary3}) |     @OnClick({R.id.llGallary1,R.id.llGallary2,R.id.llGallary3}) | ||||||
|     void onGallaryClick(View view){ |     void onGallaryClick(View view){ | ||||||
|         switch (view.getId()){ |         switch (view.getId()){ | ||||||
|             case R.id.llGallary1: |             case R.id.llGallary1: | ||||||
| 
 |                 if(novel1!=null) | ||||||
|               //  showBookDetail("ABC"); |                 showBookDetail(novel1); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.llGallary2: |             case R.id.llGallary2: | ||||||
|               //  showBookDetail("123"); |                 if(novel2!=null) showBookDetail(novel2); | ||||||
|                 break; |                 break; | ||||||
|             case R.id.llGallary3: |             case R.id.llGallary3: | ||||||
|               //  showBookDetail("ZXF"); |                 if(novel3!=null) | ||||||
|  |                 showBookDetail(novel3); | ||||||
|                 break; |                 break; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -63,6 +112,20 @@ public class Fragment_jingxuan_tuijian extends BasicFragment { | ||||||
|     @Override |     @Override | ||||||
|     public void initViews(){ |     public void initViews(){ | ||||||
| 
 | 
 | ||||||
|  |         if(novel1!=null) { | ||||||
|  |             tvName1.setText(novel1.getName()); | ||||||
|  |             loadImageView(novel1.getCover(),imageView1); | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |         if(novel2!=null) { | ||||||
|  |             tvName2.setText(novel2.getName()); | ||||||
|  |             loadImageView(novel2.getCover(),imageView2); | ||||||
|  |         } | ||||||
|  |         if(novel3!=null) { | ||||||
|  |             tvName3.setText(novel3.getName()); | ||||||
|  |             loadImageView(novel3.getCover(),imageView3); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  |  | ||||||
|  | @ -47,8 +47,18 @@ public class Fragment_paihang extends BasicFragment { | ||||||
|     public Fragment_paihang() { |     public Fragment_paihang() { | ||||||
|         // Required empty public constructor |         // Required empty public constructor | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public static Fragment_paihang newInstance(String param1, String param2) { |     public static Fragment_paihang newInstance(String param1, String param2) { | ||||||
|         Fragment_paihang fragment = new Fragment_paihang(); |         Fragment_paihang fragment = new Fragment_paihang(); | ||||||
|         Bundle args = new Bundle(); |         Bundle args = new Bundle(); | ||||||
|  |  | ||||||
|  | @ -43,7 +43,17 @@ public class Fragment_shudan extends BasicFragment { | ||||||
|     protected int getLayoutRes() { |     protected int getLayoutRes() { | ||||||
|         return R.layout.fragment_shudan; |         return R.layout.fragment_shudan; | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|     @Override |     @Override | ||||||
|     public void initData() { |     public void initData() { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -45,6 +45,9 @@ public class Fragment_shudan_list    extends BasicFragment { | ||||||
|         return fragment; |         return fragment; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     protected  void fillData() { | ||||||
|  |     } | ||||||
|     @Override |     @Override | ||||||
|     public void onCreate(Bundle savedInstanceState) { |     public void onCreate(Bundle savedInstanceState) { | ||||||
|         super.onCreate(savedInstanceState); |         super.onCreate(savedInstanceState); | ||||||
|  | @ -54,8 +57,15 @@ public class Fragment_shudan_list    extends BasicFragment { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  |     protected   void processArguments(){ | ||||||
|  |         if (getArguments() != null) { | ||||||
|  |             Bundle bundle = getArguments() ; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected int getLayoutRes() { |     protected int getLayoutRes() { | ||||||
|         return R.layout.fragment_fragment_shudan_list; |         return R.layout.fragment_fragment_shudan_list; | ||||||
|  |  | ||||||
|  | @ -72,7 +72,7 @@ public class Main2Activity extends Activity_base | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void setTitle() { |     protected void setTitle() { | ||||||
| 
 |         setTitle(""); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | @ -120,13 +120,13 @@ public class Main2Activity extends Activity_base | ||||||
|     private void creatToolbar() { |     private void creatToolbar() { | ||||||
| 
 | 
 | ||||||
|         //  toolbar= (Toolbar) findViewById(R.id.toolbar); |         //  toolbar= (Toolbar) findViewById(R.id.toolbar); | ||||||
|  | 
 | ||||||
|           setSupportActionBar(toolbar); |           setSupportActionBar(toolbar); | ||||||
|         //  toolbar.setNavigationIcon(R.mipmap.ic_launcher_round);//设置导航栏图标 |         //  toolbar.setNavigationIcon(R.mipmap.ic_launcher_round);//设置导航栏图标 | ||||||
|         //   toolbar.setLogo(R.mipmap.ic_launcher);//设置app logo |         //   toolbar.setLogo(R.mipmap.ic_launcher);//设置app logo | ||||||
|      //  toolbar.setTitle("Title");//设置主标题 |      //  toolbar.setTitle("Title");//设置主标题 | ||||||
|      // setTitle("titleaa"); |      // setTitle("titleaa"); | ||||||
|       //  toolbar.setSubtitle("Subtitle");//设置子标题 |       //  toolbar.setSubtitle("Subtitle");//设置子标题 | ||||||
| 
 |  | ||||||
|        toolbar.inflateMenu(R.menu.main);//设置右上角的填充菜单 |        toolbar.inflateMenu(R.menu.main);//设置右上角的填充菜单 | ||||||
|         toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { |         toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { | ||||||
|             @Override |             @Override | ||||||
|  | @ -287,7 +287,7 @@ private  int bottomSelectedIndex; | ||||||
|         toggle.setDrawerIndicatorEnabled(showToggle); |         toggle.setDrawerIndicatorEnabled(showToggle); | ||||||
|         toggle.syncState(); |         toggle.syncState(); | ||||||
| 
 | 
 | ||||||
|         spinner.setVisibility( showSpinner?View.VISIBLE:View.INVISIBLE); |         spinner.setVisibility( showSpinner?View.VISIBLE:View.GONE); | ||||||
| 
 | 
 | ||||||
|         supportInvalidateOptionsMenu(); |         supportInvalidateOptionsMenu(); | ||||||
|         //invalidateOptionsMenu(); |         //invalidateOptionsMenu(); | ||||||
|  | @ -295,7 +295,7 @@ private  int bottomSelectedIndex; | ||||||
|         if(bottomSelectedIndex==1) { |         if(bottomSelectedIndex==1) { | ||||||
|           title =""; |           title =""; | ||||||
|         } |         } | ||||||
| 
 |         txtTitle.setText(title); | ||||||
|          this.setTitle(title); |          this.setTitle(title); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  | @ -365,49 +365,6 @@ private  int bottomSelectedIndex; | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private void getDataFromServer() { |  | ||||||
|         //url |  | ||||||
|         String url1 = "http://api.kkmh.com/v1/topic_new/discovery_list?gender=0&sa_event=eyJwcm9qZWN0Ijoia%203VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3ODM5MDM5MzE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21t%20dW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjIuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tRmluZENhdGVnb%203J5VGFiTmFtZSI6IuWFqOmDqCIsIklzQXV0b0xvYWQiOmZhbHNlLCIkbGliX3ZlcnNpb24iOiIxLjYuMzQiLCIkbmV0d29ya190eXBlIjoiV0l%20GSSIsIiR3aWZpIjp0cnVlLCIkbWFudWZhY3R1cmVyIjoic2Ftc3VuZyIsIkZyb21GaW5kVGFiTmFtZSI6IuaOqOiNkCIsIiRzY3JlZW%205faGVpZ2h0Ijo1NzYsIkNhdGVnb3J5Ijoi5peg5rOV6I635Y-WIiwiSG9tZXBhZ2VVcGRhdGVEYXRlIjowLCJQcm9wZXJ0eUV2ZW5%200IjoiUmVhZEZpbmRQYWdlIiwiRmluZFRhYk5hbWUiOiLmjqjojZAiLCJhYnRlc3RfZ3JvdXAiOjQ2LCIkc2NyZWVuX3dpZHRoIjo%20xMDI0LCJGaW5kQ2F0ZWdvcnlUYWJOYW1lIjoi5YWo6YOoIiwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2%20UiLCIkY2FycmllciI6IkNNQ0MiLCIkbW9kZWwiOiJHVC1QNTIxMCIsIiRhcHBfdmVyc2lvbiI6IjMuOC4xIn0sInR5cGUiOiJ0cmFja%20yIsImRpc3RpbmN0X2lkIjoiQTo5MDUxMDQyNzYzNzU1MTA5Iiwib3JpZ2luYWxfaWQiOiJBOjkwNTEwNDI3NjM3NTUxMDkiLCJldmV%20udCI6IlJlYWRGaW5kUGFnZSJ9"; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         RequestParams params1 = new RequestParams(); |  | ||||||
|         params1.setUri(url1); |  | ||||||
| 
 |  | ||||||
|         //用xutils3网络请求数据,需要导入xutils3的依赖和帮助类(自己导入) |  | ||||||
|         x.http().get(params1, new Callback.CommonCallback<String>() { |  | ||||||
| 
 |  | ||||||
|             @Override |  | ||||||
|             public void onSuccess(final String result) { |  | ||||||
| 
 |  | ||||||
|                 if (result != null) { |  | ||||||
|                     Log.i("xutils-http-result", result); |  | ||||||
| 
 |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             @Override |  | ||||||
|             public void onError(Throwable ex, boolean isOnCallback) { |  | ||||||
|                 Log.i("xutils-http-error", "onError: "); |  | ||||||
| 
 |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             @Override |  | ||||||
|             public void onCancelled(CancelledException cex) { |  | ||||||
| 
 |  | ||||||
|                 Log.i("xutils-http-cancel", "onCancelled: "); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             @Override |  | ||||||
|             public void onFinished() { |  | ||||||
| 
 |  | ||||||
|                 Log.i("xutils-http-finished", "onFinished: "); |  | ||||||
| 
 |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     long firstTime =0; |     long firstTime =0; | ||||||
|  |  | ||||||
|  | @ -3,22 +3,40 @@ package com.novelbook.android; | ||||||
| import android.content.Context; | import android.content.Context; | ||||||
| import android.content.Intent; | import android.content.Intent; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
|  | import android.os.Handler; | ||||||
|  | import android.os.Message; | ||||||
| import android.support.annotation.NonNull; | import android.support.annotation.NonNull; | ||||||
| import android.support.v7.app.AppCompatActivity; | import android.support.v7.app.AppCompatActivity; | ||||||
| import android.support.v7.widget.GridLayoutManager; | import android.support.v7.widget.GridLayoutManager; | ||||||
| import android.support.v7.widget.RecyclerView; | import android.support.v7.widget.RecyclerView; | ||||||
| import android.support.v7.widget.Toolbar; | import android.support.v7.widget.Toolbar; | ||||||
|  | import android.util.Log; | ||||||
| import android.view.LayoutInflater; | import android.view.LayoutInflater; | ||||||
| import android.view.View; | import android.view.View; | ||||||
| import android.view.ViewGroup; | import android.view.ViewGroup; | ||||||
| import android.view.Window; | import android.view.Window; | ||||||
|  | import android.widget.ImageView; | ||||||
| import android.widget.TextView; | import android.widget.TextView; | ||||||
| import android.widget.Toast; | import android.widget.Toast; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | import com.google.gson.JsonArray; | ||||||
|  | import com.google.gson.JsonElement; | ||||||
|  | import com.google.gson.JsonObject; | ||||||
|  | import com.google.gson.JsonParser; | ||||||
|  | import com.novelbook.android.bean.Cataloge; | ||||||
|  | import com.novelbook.android.bean.NovelBlock; | ||||||
| import com.novelbook.android.db.Novel; | import com.novelbook.android.db.Novel; | ||||||
|  | import com.novelbook.android.netsubscribe.BookSubscribe; | ||||||
|  | import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||||
|  | import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||||
|  | import com.novelbook.android.utils.Constants; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
|  | 
 | ||||||
|  | import org.json.JSONObject; | ||||||
| 
 | 
 | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|  | import java.util.Iterator; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import butterknife.BindView; | import butterknife.BindView; | ||||||
|  | @ -30,18 +48,59 @@ public class activity_cates extends Activity_base { | ||||||
|     RecyclerView mRecyclerView; |     RecyclerView mRecyclerView; | ||||||
|     private List<String> mDatas; |     private List<String> mDatas; | ||||||
|     private  BookListAdapter mAdapter; |     private  BookListAdapter mAdapter; | ||||||
| 
 |     private String TAG = activity_cates.class.getSimpleName(); | ||||||
|     @Override |     @Override | ||||||
|     public int getLayoutRes() { |     public int getLayoutRes() { | ||||||
|         return R.layout.activity_cates; |         return R.layout.activity_cates; | ||||||
|     } |     } | ||||||
| 
 |     private List<Cataloge> mCataloges; | ||||||
|     @Override |     @Override | ||||||
|     protected void initViews() { |     protected void initViews() { | ||||||
|         initReceyleView(); | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |     Handler handler = new Handler() { | ||||||
|  |         @Override | ||||||
|  |         public void handleMessage(Message msg) { | ||||||
|  | 
 | ||||||
|  |             int wt = msg.what; | ||||||
|  | 
 | ||||||
|  |             if (msg.what == 1) { | ||||||
|  |                 fillData(); | ||||||
|  |             } else if (msg.what == 2)  // | ||||||
|  |             { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                 Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show(); | ||||||
|  |             } else if (msg.what == 3) { | ||||||
|  | 
 | ||||||
|  |                 Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show(); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             hideProgress(); | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     private void fillData() { | ||||||
|  |           List<Cataloge> cates = new ArrayList<>(); | ||||||
|  |         for(Cataloge cate:mCataloges){ | ||||||
|  |             if(cate.getNovelCount()>0){ | ||||||
|  |                 cates.add(cate); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         mAdapter = new BookListAdapter(this, cates, R.layout.recycle_list_item_cates, new OnItemClickLitener() { | ||||||
|  | 
 | ||||||
|  |             @Override | ||||||
|  |             public void onItemClick(View view, int position) { | ||||||
|  |                 showCateList(mCataloges.get(position).getName()); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |         initReceyleView(); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void setTitle() { |     protected void setTitle() { | ||||||
|  | @ -56,26 +115,75 @@ public class activity_cates extends Activity_base { | ||||||
| 
 | 
 | ||||||
|     private void showCateList(String s) { |     private void showCateList(String s) { | ||||||
|         Intent intent = new Intent(activity_cates.this, Activity_cate_books.class); |         Intent intent = new Intent(activity_cates.this, Activity_cate_books.class); | ||||||
|         intent.putExtra("CATENAME",s); |         intent.putExtra(Activity_cate_books.EXTRNAME,s); | ||||||
|         startActivity(intent); |         startActivity(intent); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  |     public List<Cataloge> parserJsonArray(String strJson) { | ||||||
|  | 
 | ||||||
|  |         List<Cataloge> list = new ArrayList<Cataloge>(); | ||||||
|  |         //创建一个Gson对象 | ||||||
|  |         // Gson gson = new Gson(); | ||||||
|  |         //创建一个JsonParser | ||||||
|  |         JsonParser parser = new JsonParser(); | ||||||
|  |         //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象 | ||||||
|  |         JsonElement el = parser.parse(strJson); | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonObject | ||||||
|  |         JsonObject jsonObj = null; | ||||||
|  |         if (el.isJsonObject()) { | ||||||
|  |             jsonObj = el.getAsJsonObject(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         //把JsonElement对象转换成JsonArray | ||||||
|  |         JsonArray jsonArray = null; | ||||||
|  |         if (el.isJsonArray()) { | ||||||
|  |             jsonArray = el.getAsJsonArray(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //遍历JsonArray对象 | ||||||
|  |         Iterator it = jsonArray.iterator(); | ||||||
|  |         while (it.hasNext()) { | ||||||
|  |             JsonElement e = (JsonElement) it.next(); | ||||||
|  |             //JsonElement转换为JavaBean对象 | ||||||
|  |             list.add((Cataloge) gson.fromJson(e, Cataloge.class)); | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
| @Override | @Override | ||||||
|     protected void initData() { |     protected void initData() { | ||||||
| 
 | 
 | ||||||
|      mDatas = new ArrayList<String>(); |  | ||||||
|     for (int i = 0; i <5; i++) |  | ||||||
|     { |  | ||||||
|                mDatas.add("cate"+i); |  | ||||||
|     } |  | ||||||
|     mAdapter = new BookListAdapter(this, mDatas, R.layout.recycle_list_item_cates, new OnItemClickLitener() { |  | ||||||
| 
 | 
 | ||||||
|  |     showProgressDialog(true, "正在加载"); | ||||||
|  |     BookSubscribe.getCates(Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||||
|         @Override |         @Override | ||||||
|         public void onItemClick(View view, int position) { |         public void onSuccess(String result) { | ||||||
|             showCateList(mDatas.get(position)); | 
 | ||||||
|  |             // mFirstPage= gson.fromJson(result, FirstPage.class); | ||||||
|  |             try { | ||||||
|  |                 JSONObject jsonObject = new JSONObject(result); | ||||||
|  |                 String resultstr = jsonObject.getString("nts"); | ||||||
|  |                 mCataloges = parserJsonArray(resultstr); | ||||||
|  |                 handler.sendEmptyMessage(1); | ||||||
|  | 
 | ||||||
|  |             } catch (Exception e) { | ||||||
|  |                 e.printStackTrace(); | ||||||
|  |             } | ||||||
|  |             handler.sendEmptyMessage(1); | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|     }); | 
 | ||||||
|  |         @Override | ||||||
|  |         public void onFault(String errorMsg) { | ||||||
|  |             //失败 | ||||||
|  |             Log.d(TAG, "error on get firstpage: " + errorMsg); | ||||||
|  |             handler.sendEmptyMessage(1); | ||||||
|  |         } | ||||||
|  |     }, this)); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | @ -83,7 +191,7 @@ public class activity_cates extends Activity_base { | ||||||
|     void initReceyleView() { |     void initReceyleView() { | ||||||
| 
 | 
 | ||||||
|         //  mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); |         //  mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); | ||||||
|         mRecyclerView.setLayoutManager(new GridLayoutManager(this,2)); |         mRecyclerView.setLayoutManager(new GridLayoutManager(this,3)); | ||||||
|         mRecyclerView.setAdapter(mAdapter ); |         mRecyclerView.setAdapter(mAdapter ); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  | @ -94,10 +202,10 @@ public class activity_cates extends Activity_base { | ||||||
|         private final int IMAGE_VIEW = 3; |         private final int IMAGE_VIEW = 3; | ||||||
| 
 | 
 | ||||||
|         private Context context; |         private Context context; | ||||||
|         private List<String> mDatas = new ArrayList<String>(); |         private List<Cataloge> mDatas = new ArrayList<Cataloge>(); | ||||||
|         private OnItemClickLitener mOnItemClickLitener; |         private OnItemClickLitener mOnItemClickLitener; | ||||||
|         private int listItemID; |         private int listItemID; | ||||||
|         public BookListAdapter(Context context, List<String> mDatas, int listItemID, OnItemClickLitener clickLitener) { |         public BookListAdapter(Context context, List<Cataloge> mDatas, int listItemID, OnItemClickLitener clickLitener) { | ||||||
|             this.context = context; |             this.context = context; | ||||||
|             this.mDatas = mDatas; |             this.mDatas = mDatas; | ||||||
|             this.mOnItemClickLitener = clickLitener; |             this.mOnItemClickLitener = clickLitener; | ||||||
|  | @ -131,7 +239,7 @@ public class activity_cates extends Activity_base { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         public void setParameters(List<String> mDatas,int listItemID ) { |         public void setParameters(List<Cataloge> mDatas,int listItemID ) { | ||||||
|             this.mDatas = mDatas; |             this.mDatas = mDatas; | ||||||
|             this.listItemID = listItemID; |             this.listItemID = listItemID; | ||||||
|         } |         } | ||||||
|  | @ -144,8 +252,13 @@ public class activity_cates extends Activity_base { | ||||||
|         @Override |         @Override | ||||||
|         public void onBindViewHolder(BookListAdapter.MyViewHolder holder, int position) |         public void onBindViewHolder(BookListAdapter.MyViewHolder holder, int position) | ||||||
|         { |         { | ||||||
|             holder.tvTitle.setText(mDatas.get(position)); |             holder.tvTitle.setText(mDatas.get(position).getName()); | ||||||
|             holder.tvNum.setText("9999"); |             holder.tvNum.setText(mDatas.get(position).getNovelCount()+""); | ||||||
|  |             if( mDatas.get(position).getNovel()!=null) { | ||||||
|  |                 ImageUtil.loadImage(context, mDatas.get(position).getNovel().getCover(), holder.imageView); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|             // 如果设置了回调,则设置点击事件 |             // 如果设置了回调,则设置点击事件 | ||||||
|             if (mOnItemClickLitener != null) |             if (mOnItemClickLitener != null) | ||||||
|             { |             { | ||||||
|  | @ -167,8 +280,8 @@ public class activity_cates extends Activity_base { | ||||||
|             return mDatas.size(); |             return mDatas.size(); | ||||||
|         } |         } | ||||||
|         public void addData(int position) { |         public void addData(int position) { | ||||||
|             mDatas.add(position, "Insert One"); |          //   mDatas.add(position, "Insert One"); | ||||||
|             notifyItemInserted(position); |         //    notifyItemInserted(position); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void removeData(int position) { |         public void removeData(int position) { | ||||||
|  | @ -181,6 +294,8 @@ public class activity_cates extends Activity_base { | ||||||
|             TextView tvTitle; |             TextView tvTitle; | ||||||
|             @BindView(R.id.tvCateNums) |             @BindView(R.id.tvCateNums) | ||||||
|             TextView tvNum; |             TextView tvNum; | ||||||
|  |             @BindView(R.id.imageViewCate) | ||||||
|  |             ImageView imageView; | ||||||
| 
 | 
 | ||||||
|             public MyViewHolder(View view) |             public MyViewHolder(View view) | ||||||
|             { |             { | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ import com.novelbook.android.BookActivity; | ||||||
| import com.novelbook.android.db.Novel; | import com.novelbook.android.db.Novel; | ||||||
| 
 | 
 | ||||||
| import com.novelbook.android.netutils.NetUtil; | import com.novelbook.android.netutils.NetUtil; | ||||||
|  | import com.novelbook.android.utils.ImageUtil; | ||||||
| import com.novelbook.android.utils.MyImageLoader; | import com.novelbook.android.utils.MyImageLoader; | ||||||
| import com.novelbook.android.utils.OnItemClickListener; | import com.novelbook.android.utils.OnItemClickListener; | ||||||
| 
 | 
 | ||||||
|  | @ -21,7 +22,7 @@ public  class BookListAdapter extends RecyclerView.Adapter< MyViewHolder> { | ||||||
|     private final int EMPTY_VIEW = 1; |     private final int EMPTY_VIEW = 1; | ||||||
|     private final int PROGRESS_VIEW = 2; |     private final int PROGRESS_VIEW = 2; | ||||||
|     private final int IMAGE_VIEW = 3; |     private final int IMAGE_VIEW = 3; | ||||||
|     private MyImageLoader loader = new MyImageLoader(); |    // private MyImageLoader loader = new MyImageLoader(); | ||||||
|     private Context context; |     private Context context; | ||||||
|     private List<Novel> mDatas  ; |     private List<Novel> mDatas  ; | ||||||
|     private OnItemClickListener mOnItemClickListener; |     private OnItemClickListener mOnItemClickListener; | ||||||
|  | @ -89,8 +90,7 @@ public  class BookListAdapter extends RecyclerView.Adapter< MyViewHolder> { | ||||||
|         if (holder.tvCate != null) holder.tvCate.setText(mDatas.get(position).getNovelType()); |         if (holder.tvCate != null) holder.tvCate.setText(mDatas.get(position).getNovelType()); | ||||||
|         if (holder.tvDesc != null) holder.tvDesc.setText(mDatas.get(position).getDesc()); |         if (holder.tvDesc != null) holder.tvDesc.setText(mDatas.get(position).getDesc()); | ||||||
|         if (holder.imageView != null && !TextUtils.isEmpty(mDatas.get(position).getCover())) { |         if (holder.imageView != null && !TextUtils.isEmpty(mDatas.get(position).getCover())) { | ||||||
|             loader.displayImage(context,NetUtil.getCoverUrl(mDatas.get(position).getCover()) ,holder.imageView); |             ImageUtil.loadImage( context, mDatas.get(position).getCover() ,holder. imageView); | ||||||
| 
 |  | ||||||
|         } |         } | ||||||
|         if(holder.tvNum!=null)holder.tvNum.setText("999"); |         if(holder.tvNum!=null)holder.tvNum.setText("999"); | ||||||
|         // 如果设置了回调,则设置点击事件 |         // 如果设置了回调,则设置点击事件 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,34 @@ | ||||||
|  | package com.novelbook.android.bean; | ||||||
|  | 
 | ||||||
|  | import com.novelbook.android.db.Novel; | ||||||
|  | 
 | ||||||
|  | public class Cataloge | ||||||
|  | { | ||||||
|  |     private  String name; | ||||||
|  |     private int novelCount; | ||||||
|  |     private Novel novel; | ||||||
|  | 
 | ||||||
|  |     public String getName() { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setName(String name) { | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public int getNovelCount() { | ||||||
|  |         return novelCount; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setNovelCount(int novelCount) { | ||||||
|  |         this.novelCount = novelCount; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Novel getNovel() { | ||||||
|  |         return novel; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setNovel(Novel novel) { | ||||||
|  |         this.novel = novel; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,48 @@ | ||||||
|  | package com.novelbook.android.bean; | ||||||
|  | 
 | ||||||
|  | import com.novelbook.android.db.Novel; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | public class NovelBlock{ | ||||||
|  |    private String name; | ||||||
|  |    private String icon; | ||||||
|  |    private List<String> pictures; | ||||||
|  |    private List<Novel> ns; | ||||||
|  | 
 | ||||||
|  |     public String getName() { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setName(String name) { | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getIcon() { | ||||||
|  |         return icon; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setIcon(String icon) { | ||||||
|  |         this.icon = icon; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<String> getPictures() { | ||||||
|  |         return pictures; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPictures(List<String> pictures) { | ||||||
|  |         this.pictures = pictures; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public List<Novel> getNs() { | ||||||
|  |         return ns; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setNs(List<Novel> ns) { | ||||||
|  |         this.ns = ns; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @ -10,6 +10,7 @@ import retrofit2.http.Body; | ||||||
| import retrofit2.http.GET; | import retrofit2.http.GET; | ||||||
| import retrofit2.http.POST; | import retrofit2.http.POST; | ||||||
| import retrofit2.http.Path; | import retrofit2.http.Path; | ||||||
|  | import retrofit2.http.Query; | ||||||
| import retrofit2.http.QueryMap; | import retrofit2.http.QueryMap; | ||||||
| import retrofit2.http.Streaming; | import retrofit2.http.Streaming; | ||||||
| import retrofit2.http.Url; | import retrofit2.http.Url; | ||||||
|  | @ -49,8 +50,20 @@ public interface HttpApi { | ||||||
|      @GET("s/{siteDomain}.json") |      @GET("s/{siteDomain}.json") | ||||||
|      Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain); |      Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain); | ||||||
| 
 | 
 | ||||||
|     @GET("/page/index") |     @GET("page/index") | ||||||
|     Observable<ResponseBody> getFirstPage(); |     Observable<ResponseBody> getFirstPage(); | ||||||
| 
 | 
 | ||||||
|  |     //分类的总榜,显示每个小说分类有多少本书 | ||||||
|  |     @GET("page/noveltype") | ||||||
|  |     Observable<ResponseBody> getCates(@Query("sex") int sex); | ||||||
|  | 
 | ||||||
|  |     // sex:1,男, 2, 女;progress:1, 连载中、2:已完本,3. 新书 http://xiaoshuofenxiang.com/api/search/nt/言情/2?sex=2&progress=1 | ||||||
|  |     //@GET("search/nt/{cate}/{pageno}?sex={sex}&progress={progress}  ") | ||||||
|  |   //  Observable<ResponseBody> search(@Query("cate") String cate, @Query("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress); | ||||||
|  |     @GET("search/nt/{cate}/{pageno}") | ||||||
|  |     Observable<ResponseBody> getCateNovels(@Path("cate") String cate, @Path("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -35,6 +35,12 @@ public class BookSubscribe { | ||||||
|         Observable<ResponseBody> observable =  HttpMethods.getInstance().getHttpApi().getFirstPage(); |         Observable<ResponseBody> observable =  HttpMethods.getInstance().getHttpApi().getFirstPage(); | ||||||
|         HttpMethods.getInstance().toSubscribe(observable, subscriber); |         HttpMethods.getInstance().toSubscribe(observable, subscriber); | ||||||
|     } |     } | ||||||
| 
 |     public static void getCates(int sex,DisposableObserver<ResponseBody> subscriber){ | ||||||
| 
 |         Observable<ResponseBody> observable =  HttpMethods.getInstance().getHttpApi().getCates(sex); | ||||||
|  |         HttpMethods.getInstance().toSubscribe(observable, subscriber); | ||||||
|  |     } | ||||||
|  |     public static void getCateNovelList(String cate,int pageno,int sex,int progress,DisposableObserver<ResponseBody> subscriber){ | ||||||
|  |         Observable<ResponseBody> observable =  HttpMethods.getInstance().getHttpApi().getCateNovels(cate,pageno,sex,progress); | ||||||
|  |         HttpMethods.getInstance().toSubscribe(observable, subscriber); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -252,7 +252,11 @@ public class HttpMethods { | ||||||
|                         .header("Cache-Control", "public, max-age=" + maxAge) |                         .header("Cache-Control", "public, max-age=" + maxAge) | ||||||
|                         .build(); |                         .build(); | ||||||
|             } else { |             } else { | ||||||
|                return originalResponse; |                 return originalResponse.newBuilder() | ||||||
|  |                         .removeHeader("Pragma") | ||||||
|  |                         .header("Cache-Control", "public, max-age=" + maxAge) | ||||||
|  |                         .build(); | ||||||
|  |             //   return originalResponse; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,6 @@ | ||||||
|  | package com.novelbook.android.utils; | ||||||
|  | 
 | ||||||
|  | public class Constants { | ||||||
|  |     public static int SEX=1; | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | package com.novelbook.android.utils; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.widget.ImageView; | ||||||
|  | 
 | ||||||
|  | import com.novelbook.android.netutils.NetUtil; | ||||||
|  | 
 | ||||||
|  | public class ImageUtil { | ||||||
|  |     public static String TAG= ImageUtil.class.getSimpleName(); | ||||||
|  |     public static MyImageLoader loader = new MyImageLoader(); | ||||||
|  |     public static void loadImage(Context context,  String url, ImageView imageView){ | ||||||
|  |         loader.displayImage(context, NetUtil.getCoverUrl(url), imageView); | ||||||
|  |         Log.d(TAG,"loading image url: " + NetUtil.getCoverUrl(url)); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -58,7 +58,7 @@ | ||||||
|                         android:layout_height="wrap_content" |                         android:layout_height="wrap_content" | ||||||
|                         android:gravity="bottom" |                         android:gravity="bottom" | ||||||
|                         android:layout_gravity="center" |                         android:layout_gravity="center" | ||||||
|                         android:layout_marginLeft="20dp" |                         android:layout_marginLeft="25dp" | ||||||
|                         android:layout_marginRight="20dp" |                         android:layout_marginRight="20dp" | ||||||
|                         android:orientation="horizontal"> |                         android:orientation="horizontal"> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,7 +25,20 @@ | ||||||
|             android:layout_height="?attr/actionBarSize" |             android:layout_height="?attr/actionBarSize" | ||||||
|             android:background="?attr/colorPrimary" |             android:background="?attr/colorPrimary" | ||||||
|             app:popupTheme="@style/ToolBarTheme.PopupOverlay"  > |             app:popupTheme="@style/ToolBarTheme.PopupOverlay"  > | ||||||
|  |             <TextView | ||||||
|  |                 android:id="@+id/toolbarTitle" | ||||||
|  |                 android:layout_width="wrap_content" | ||||||
|  |                 android:layout_height="wrap_content" | ||||||
|  |                 android:layout_gravity="left" | ||||||
| 
 | 
 | ||||||
|  |                 android:gravity="center" | ||||||
|  |                 android:text="我是标题" | ||||||
|  |                 android:textSize="20sp" | ||||||
|  |                 android:layout_weight="1" | ||||||
|  |                 android:visibility="visible" | ||||||
|  |                 android:textColor="@color/white" | ||||||
|  |                 android:background="@color/colorAccent" | ||||||
|  |                 /> | ||||||
|             <android.support.v7.widget.AppCompatSpinner |             <android.support.v7.widget.AppCompatSpinner | ||||||
|                 android:id="@+id/sexSelect" |                 android:id="@+id/sexSelect" | ||||||
|                 android:layout_width="wrap_content" |                 android:layout_width="wrap_content" | ||||||
|  | @ -39,17 +52,7 @@ | ||||||
|                 android:layout_weight="0" |                 android:layout_weight="0" | ||||||
|                 android:visibility="gone" |                 android:visibility="gone" | ||||||
|                 /> |                 /> | ||||||
|             <TextView | 
 | ||||||
|                 android:id="@+id/toolbarTitle" |  | ||||||
|                 android:layout_width="match_parent" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:layout_gravity="center" |  | ||||||
|                 android:gravity="center" |  | ||||||
|                 android:text="我是标题" |  | ||||||
|                 android:textSize="20sp" |  | ||||||
|                 android:layout_weight="1" |  | ||||||
|                 android:visibility="gone" |  | ||||||
|                 /> |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     tools:context=".Fragments.BlankFragment"> | ||||||
|  | 
 | ||||||
|  |     <!-- TODO: Update blank fragment layout --> | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="match_parent" | ||||||
|  |         android:text="@string/hello_blank_fragment" /> | ||||||
|  | 
 | ||||||
|  | </FrameLayout> | ||||||
|  | @ -64,6 +64,7 @@ | ||||||
|                         <Button |                         <Button | ||||||
|                             android:id="@+id/buttonMoreTuijian" |                             android:id="@+id/buttonMoreTuijian" | ||||||
|                             style="@style/buttonRightMore" |                             style="@style/buttonRightMore" | ||||||
|  |                             android:visibility="gone" | ||||||
|                             android:text="更多>" |                             android:text="更多>" | ||||||
| 
 | 
 | ||||||
|                             /> |                             /> | ||||||
|  | @ -109,12 +110,14 @@ | ||||||
|                         android:orientation="horizontal"> |                         android:orientation="horizontal"> | ||||||
| 
 | 
 | ||||||
|                         <ImageView |                         <ImageView | ||||||
|  |                             android:id="@+id/imageBlock1" | ||||||
|                             android:layout_width="20dp" |                             android:layout_width="20dp" | ||||||
|                             android:layout_height="20dp" |                             android:layout_height="20dp" | ||||||
|                             android:src="@drawable/googleg_standard_color_18" |                             android:src="@drawable/googleg_standard_color_18" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|                             /> |                             /> | ||||||
|                         <TextView |                         <TextView | ||||||
|  |                             android:id="@+id/tvBlock1" | ||||||
|                             android:layout_width="match_parent" |                             android:layout_width="match_parent" | ||||||
|                             android:layout_height="30dp" |                             android:layout_height="30dp" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|  | @ -124,7 +127,7 @@ | ||||||
|                             android:textColor="#212121" /> |                             android:textColor="#212121" /> | ||||||
| 
 | 
 | ||||||
|                         <Button |                         <Button | ||||||
|                             android:id="@+id/buttonMoreHot" |                             android:id="@+id/buttonMore1" | ||||||
|                             style="@style/buttonRightMore" |                             style="@style/buttonRightMore" | ||||||
|                             android:text="更多>" |                             android:text="更多>" | ||||||
| 
 | 
 | ||||||
|  | @ -165,12 +168,14 @@ | ||||||
|                         android:orientation="horizontal"> |                         android:orientation="horizontal"> | ||||||
| 
 | 
 | ||||||
|                         <ImageView |                         <ImageView | ||||||
|  |                             android:id="@+id/imageBlock2" | ||||||
|                             android:layout_width="20dp" |                             android:layout_width="20dp" | ||||||
|                             android:layout_height="20dp" |                             android:layout_height="20dp" | ||||||
|                             android:src="@drawable/googleg_standard_color_18" |                             android:src="@drawable/googleg_standard_color_18" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|                             /> |                             /> | ||||||
|                         <TextView |                         <TextView | ||||||
|  |                             android:id="@+id/tvBlock2" | ||||||
|                             android:layout_width="match_parent" |                             android:layout_width="match_parent" | ||||||
|                             android:layout_height="30dp" |                             android:layout_height="30dp" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|  | @ -180,7 +185,7 @@ | ||||||
|                             android:textColor="#212121" /> |                             android:textColor="#212121" /> | ||||||
| 
 | 
 | ||||||
|                         <Button |                         <Button | ||||||
|                             android:id="@+id/buttonMoreLianzai" |                             android:id="@+id/buttonMore2" | ||||||
|                             style="@style/buttonRightMore" |                             style="@style/buttonRightMore" | ||||||
|                             android:text="更多>" |                             android:text="更多>" | ||||||
| 
 | 
 | ||||||
|  | @ -221,12 +226,14 @@ | ||||||
|                         android:orientation="horizontal"> |                         android:orientation="horizontal"> | ||||||
| 
 | 
 | ||||||
|                         <ImageView |                         <ImageView | ||||||
|  |                             android:id="@+id/imageBlock3" | ||||||
|                             android:layout_width="20dp" |                             android:layout_width="20dp" | ||||||
|                             android:layout_height="20dp" |                             android:layout_height="20dp" | ||||||
|                             android:src="@drawable/googleg_standard_color_18" |                             android:src="@drawable/googleg_standard_color_18" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|                             /> |                             /> | ||||||
|                         <TextView |                         <TextView | ||||||
|  |                             android:id="@+id/tvBlock3" | ||||||
|                             android:layout_width="match_parent" |                             android:layout_width="match_parent" | ||||||
|                             android:layout_height="30dp" |                             android:layout_height="30dp" | ||||||
|                             android:layout_gravity="left" |                             android:layout_gravity="left" | ||||||
|  | @ -236,7 +243,7 @@ | ||||||
|                             android:textColor="#212121" /> |                             android:textColor="#212121" /> | ||||||
| 
 | 
 | ||||||
|                         <Button |                         <Button | ||||||
|                             android:id="@+id/buttonMoreWanben" |                             android:id="@+id/buttonMore3" | ||||||
|                             style="@style/buttonRightMore" |                             style="@style/buttonRightMore" | ||||||
|                             android:text="更多>" |                             android:text="更多>" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,20 +6,34 @@ | ||||||
|     android:layout_width="wrap_content" |     android:layout_width="wrap_content" | ||||||
|     android:layout_height="wrap_content" |     android:layout_height="wrap_content" | ||||||
|         android:id="@+id/cardView" |         android:id="@+id/cardView" | ||||||
|         android:layout_marginRight="10dp" |         android:layout_marginRight="2dp" | ||||||
|         android:layout_marginLeft="15dp" |         android:layout_marginLeft="2dp" | ||||||
|         android:layout_marginBottom="15dp" |         android:layout_marginBottom="10dp" | ||||||
|         android:layout_marginTop="10dp" |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_gravity="center_horizontal" | ||||||
|  |        android:gravity="center_horizontal" | ||||||
|         app:cardCornerRadius="6dp" |         app:cardCornerRadius="6dp" | ||||||
|         app:cardElevation="2dp"> |         app:cardElevation="2dp"> | ||||||
| 
 | 
 | ||||||
|         <LinearLayout |         <LinearLayout | ||||||
|             android:layout_width="match_parent" |             android:layout_width="match_parent" | ||||||
|             android:layout_height="match_parent" |             android:layout_height="match_parent" | ||||||
|             android:orientation="horizontal" |             android:orientation="vertical" | ||||||
| 
 | 
 | ||||||
|             android:background="@drawable/item_selector" |             android:background="@drawable/item_selector" | ||||||
|             > |             > | ||||||
|  | 
 | ||||||
|  |             <ImageView | ||||||
|  | 
 | ||||||
|  |             android:layout_weight="0" | ||||||
|  |             android:padding="2dp" | ||||||
|  |             android:id="@+id/imageViewCate" | ||||||
|  |             android:layout_width="100dp" | ||||||
|  |             android:layout_height="120dp" | ||||||
|  |             android:scaleType="fitCenter" | ||||||
|  |             android:src="@drawable/googleg_standard_color_18" | ||||||
|  |             tools:ignore="ContentDescription" /> | ||||||
|  | 
 | ||||||
|             <LinearLayout |             <LinearLayout | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|                 android:layout_height="match_parent" |                 android:layout_height="match_parent" | ||||||
|  | @ -43,15 +57,6 @@ | ||||||
| 
 | 
 | ||||||
|             </LinearLayout> |             </LinearLayout> | ||||||
| 
 | 
 | ||||||
|             <ImageView |  | ||||||
|                 android:layout_weight="0" |  | ||||||
|                 android:padding="2dp" |  | ||||||
|                 android:id="@+id/iv_goods" |  | ||||||
|                 android:layout_width="70dp" |  | ||||||
|                 android:layout_height="80dp" |  | ||||||
|                 android:scaleType="fitCenter" |  | ||||||
|                 android:src="@drawable/googleg_standard_color_18" |  | ||||||
|                 tools:ignore="ContentDescription" /> |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,14 +24,33 @@ | ||||||
| 
 | 
 | ||||||
|         <TextView |         <TextView | ||||||
|             android:id="@+id/title" |             android:id="@+id/title" | ||||||
|  |             style="@style/TextViewNovelTitle" | ||||||
|             android:layout_width="wrap_content" |             android:layout_width="wrap_content" | ||||||
|             android:layout_height="30dp" |  | ||||||
|             android:layout_gravity="left" |  | ||||||
|             android:text="射雕英雄传" |             android:text="射雕英雄传" | ||||||
|             android:textColor="#212121" /> |            /> | ||||||
|  |         <LinearLayout | ||||||
|  |         android:layout_marginTop="2dp" | ||||||
|  |         android:layout_marginLeft="5dp" | ||||||
|  |         android:orientation="horizontal" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         > | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/author" | ||||||
|  |             style="@style/TextViewNovelAuthor" | ||||||
|  |             android:text="金庸" | ||||||
|  |             /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             style="@style/TextViewNovelType" | ||||||
|  |             android:id="@+id/category" | ||||||
|  |             android:text="武侠小说" | ||||||
|  |             /> | ||||||
|  | 
 | ||||||
|  |     </LinearLayout> | ||||||
|         <TextView |         <TextView | ||||||
|             android:id="@+id/desc" |             android:id="@+id/desc" | ||||||
|             android:layout_marginTop="5dp" |             android:layout_margin="5dp" | ||||||
|             android:layout_width="match_parent" |             android:layout_width="match_parent" | ||||||
|             android:layout_height="wrap_content" |             android:layout_height="wrap_content" | ||||||
|             android:gravity="center" |             android:gravity="center" | ||||||
|  | @ -39,28 +58,7 @@ | ||||||
|             android:maxLines="2" |             android:maxLines="2" | ||||||
|             android:text=" " |             android:text=" " | ||||||
|             android:textColor="@color/common_google_signin_btn_text_light" /> |             android:textColor="@color/common_google_signin_btn_text_light" /> | ||||||
|         <LinearLayout |  | ||||||
|             android:layout_marginTop="5dp" |  | ||||||
|             android:orientation="horizontal" |  | ||||||
|             android:layout_width="match_parent" |  | ||||||
|             android:layout_height="wrap_content" |  | ||||||
|             > |  | ||||||
|             <TextView |  | ||||||
|                 android:id="@+id/author" |  | ||||||
|                 android:layout_width="wrap_content" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="金庸" |  | ||||||
|                 android:textColor="#212121" /> |  | ||||||
| 
 | 
 | ||||||
|             <TextView |  | ||||||
|                 android:id="@+id/category" |  | ||||||
|                 android:layout_marginLeft="5dp" |  | ||||||
|                 android:layout_width="wrap_content" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="武侠小说" |  | ||||||
|                 android:textColor="@color/colorAccent" /> |  | ||||||
| 
 |  | ||||||
|         </LinearLayout> |  | ||||||
|     </LinearLayout> |     </LinearLayout> | ||||||
| 
 | 
 | ||||||
| </LinearLayout> | </LinearLayout> | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <resources> | <resources> | ||||||
|     <string name="app_name">zhuike</string> |     <string name="app_name">未知</string> | ||||||
|     <string name="title_home">书架</string> |     <string name="title_home">书架</string> | ||||||
|     <string name="title_dashboard">书城</string> |     <string name="title_dashboard">书城</string> | ||||||
|     <string name="title_notifications">排行榜</string> |     <string name="title_notifications">排行榜</string> | ||||||
|  |  | ||||||
|  | @ -150,6 +150,7 @@ | ||||||
|         <item name="android:layout_height">30dp</item> |         <item name="android:layout_height">30dp</item> | ||||||
|         <item name="android:gravity">center</item> |         <item name="android:gravity">center</item> | ||||||
|         <item name="android:textColor">#212121</item> |         <item name="android:textColor">#212121</item> | ||||||
|  |         <item name="android:maxLines">1</item> | ||||||
| 
 | 
 | ||||||
|     </style> |     </style> | ||||||
| 
 | 
 | ||||||
|  | @ -252,4 +253,30 @@ | ||||||
|         <item name="windowActionBar">false</item> |         <item name="windowActionBar">false</item> | ||||||
|         <item name="windowNoTitle">true</item> |         <item name="windowNoTitle">true</item> | ||||||
|     </style> |     </style> | ||||||
|  | 
 | ||||||
|  |     <style name="TextViewNovelTitle"> | ||||||
|  |         <item name="android:textColor">#212121</item> | ||||||
|  |         <item name="android:layout_height">25dp</item> | ||||||
|  |         <item name="android:layout_gravity">left</item> | ||||||
|  |         <item name="android:layout_width">wrap_content</item> | ||||||
|  | 
 | ||||||
|  |     </style> | ||||||
|  | 
 | ||||||
|  |     <style name="TextViewNovelAuthor"> | ||||||
|  |         <item name="android:textColor">#212121</item> | ||||||
|  |         <item name="android:textSize">12sp</item> | ||||||
|  |         <item name="android:layout_width">wrap_content</item> | ||||||
|  |         <item name="android:layout_height">wrap_content</item> | ||||||
|  |         <item name="android:layout_gravity">left</item> | ||||||
|  |     </style> | ||||||
|  | 
 | ||||||
|  |     <style name="TextViewNovelType"> | ||||||
|  |         <item name="android:layout_marginLeft">5dp</item> | ||||||
|  |         <item name="android:textColor">@color/colorAccent</item> | ||||||
|  |         <item name="android:textSize">12sp</item> | ||||||
|  |         <item name="android:layout_width">wrap_content</item> | ||||||
|  |         <item name="android:layout_height">wrap_content</item> | ||||||
|  |     </style> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| </resources> | </resources> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue