Explorar el Código

主页逻辑,下方新闻展示

Axion hace 7 años
padre
commit
9e8d970c16

BIN
.idea/caches/build_file_checksums.ser


+ 1 - 1
.idea/misc.xml

@@ -25,7 +25,7 @@
       </value>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 153 - 7
app/src/main/java/com/wiipu/peopleheart/home/HomeFragment.java

@@ -1,7 +1,11 @@
 package com.wiipu.peopleheart.home;
 
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.Toast;
 
 import com.bigkoo.convenientbanner.ConvenientBanner;
 import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
@@ -9,10 +13,13 @@ import com.bigkoo.convenientbanner.holder.Holder;
 import com.bigkoo.convenientbanner.listener.OnItemClickListener;
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
+import com.wiipu.commonlib.base.BaseAdapter;
 import com.wiipu.commonlib.base.BaseMvpFragment;
 import com.wiipu.peopleheart.R;
+import com.wiipu.peopleheart.home.adapter.homeRcylerApdater;
 import com.wiipu.peopleheart.home.contract.HomeContract;
 import com.wiipu.peopleheart.home.presenter.HomePresenter;
+import com.wiipu.peopleheart.home.response.homeNewsResponse;
 import com.wiipu.peopleheart.home.response.topNewsResponse;
 import com.wiipu.peopleheart.widget.convenientBanner.GlideHolderView;
 
@@ -28,11 +35,65 @@ public class HomeFragment extends BaseMvpFragment implements HomeContract.View,O
     @BindView(R.id.cb_images)
     ConvenientBanner mConvenientBanner;
 
+    @BindView(R.id.rv_tushuominzhu)
+    RecyclerView homeRcylerView;
+
+    @BindView(R.id.ll_minshengqiuzhu)
+    LinearLayout minshengqiuzhu;
+
+    @BindView(R.id.ll_tousujubao)
+    LinearLayout tousujubao;
+
+    @BindView(R.id.ll_zhengcezixun)
+    LinearLayout zhengcezixun;
+
+    @BindView(R.id.ll_jianyanxiance)
+    LinearLayout jianyanxiance;
+
+    @BindView(R.id.ll_tongzhigonggao)
+    LinearLayout tongzhigonggao;
+
+    @BindView(R.id.ll_minshengxinwen)
+    LinearLayout minshengxinwen;
+
+    @BindView(R.id.ll_minshengshipin)
+    LinearLayout minshengshipin;
+
+    @BindView(R.id.ll_hangfengrexian)
+    LinearLayout hangfengrexian;
+
+    @BindView(R.id.ll_bumenliebiao)
+    LinearLayout bumenliebiao;
+
+    @BindView(R.id.ll_huiminzhengce)
+    LinearLayout huiminzhengce;
+
+    @BindView(R.id.ll_youxiubanjian)
+    LinearLayout youxiubanjian;
+
+    @BindView(R.id.ll_shimindianzan)
+    LinearLayout shimindianzan;
+
+    @BindView(R.id.ll_manyidu)
+    LinearLayout manyidu;
+
+    @BindView(R.id.ll_huifulv)
+    LinearLayout huifulv;
+
+    @BindView(R.id.ll_dajiaping)
+    LinearLayout dajiaping;
+
+    @BindView(R.id.ll_mianduimianyuyue)
+    LinearLayout mianduimian;
 
     private HomePresenter mHomePresenter;
     private List<String> convenientUrl;
+    public homeRcylerApdater mHomeRcylerAdapter;
+    private List<homeNewsResponse.dataBean> pictureList;
+    private int mCurrentPage = 1;
+    public final int PER_PAGE = 5;
+
 
-    private ImageLoader mImageLoader;
 
     @Override
     protected void attach() {
@@ -56,17 +117,40 @@ public class HomeFragment extends BaseMvpFragment implements HomeContract.View,O
 
     @Override
     protected void initListeners() {
-
+        minshengqiuzhu.setOnClickListener(this);
+        tousujubao.setOnClickListener(this);
+        zhengcezixun.setOnClickListener(this);
+        jianyanxiance.setOnClickListener(this);
+        tongzhigonggao.setOnClickListener(this);
+        minshengxinwen.setOnClickListener(this);
+        minshengshipin.setOnClickListener(this);
+        hangfengrexian.setOnClickListener(this);
+        bumenliebiao.setOnClickListener(this);
+        huiminzhengce.setOnClickListener(this);
+        youxiubanjian.setOnClickListener(this);
+        shimindianzan.setOnClickListener(this);
+        manyidu.setOnClickListener(this);
+        huifulv.setOnClickListener(this);
+        dajiaping.setOnClickListener(this);
+        mianduimian.setOnClickListener(this);
     }
 
     @Override
     protected void initData() {
+        pictureList = new ArrayList<>();
+        homeRcylerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
+        mHomeRcylerAdapter = new homeRcylerApdater(pictureList, getActivity());
+        mHomeRcylerAdapter.enableLoadMore(true);
+        mHomeRcylerAdapter.setLoadMoreListener(new BaseAdapter.LoadMoreListener() {
+            @Override
+            public void onLoadMore() {
+                mHomePresenter.getHomeNews();
+            }
+        });
+        homeRcylerView.setAdapter(mHomeRcylerAdapter);
+        mHomePresenter.getHomeNews();
         mHomePresenter.getTopConvenientNews();
         convenientUrl = new ArrayList<>();
-        mImageLoader = ImageLoader.getInstance();
-        mImageLoader.init(ImageLoaderConfiguration.createDefault(getActivity()));
-
-
     }
 
     @Override
@@ -96,6 +180,32 @@ public class HomeFragment extends BaseMvpFragment implements HomeContract.View,O
     }
 
     @Override
+    public void showHomeNews(homeNewsResponse homeNewsResponse) {
+        if (homeNewsResponse.getResData() == null) {
+            if (mCurrentPage != 1) {
+                mHomeRcylerAdapter.updateDatas(new ArrayList<homeNewsResponse.dataBean>(), false);
+                mHomeRcylerAdapter.enableLoadMore(false);
+            } else {
+                mHomeRcylerAdapter.updateDatas(new ArrayList<homeNewsResponse.dataBean>(), true);
+                showEmpty();
+            }
+        } else {
+            if (homeNewsResponse.getResData().size() < PER_PAGE) {
+                mHomeRcylerAdapter.enableLoadMore(false);
+            } else {
+                mHomeRcylerAdapter.enableLoadMore(true);
+            }
+            if (mCurrentPage == 1) {
+
+                mHomeRcylerAdapter.updateDatas(homeNewsResponse.getResData(), true);
+            } else {
+                mHomeRcylerAdapter.updateDatas(homeNewsResponse.getResData(), false);
+            }
+            mCurrentPage++;
+        }
+    }
+
+    @Override
     public void showEmpty() {
 
     }
@@ -107,7 +217,43 @@ public class HomeFragment extends BaseMvpFragment implements HomeContract.View,O
 
     @Override
     public void onClick(View v) {
-
+        switch (v.getId()) {
+            case R.id.ll_minshengqiuzhu:
+
+                break;
+            case R.id.ll_tousujubao:
+                break;
+            case R.id.ll_zhengcezixun:
+                break;
+            case R.id.ll_jianyanxiance:
+                break;
+            case R.id.ll_tongzhigonggao:
+                break;
+            case R.id.ll_minshengxinwen:
+                break;
+            case R.id.ll_minshengshipin:
+                break;
+            case R.id.ll_hangfengrexian:
+                break;
+            case R.id.ll_bumenliebiao:
+                break;
+            case R.id.ll_huiminzhengce:
+                break;
+            case R.id.ll_youxiubanjian:
+                break;
+            case R.id.ll_shimindianzan:
+                break;
+            case R.id.ll_manyidu:
+                break;
+            case R.id.ll_huifulv:
+                break;
+            case R.id.ll_dajiaping:
+                break;
+            case R.id.ll_mianduimianyuyue:
+                break;
+            default:
+                break;
+        }
     }
 
     @Override

+ 44 - 0
app/src/main/java/com/wiipu/peopleheart/home/adapter/homeRcylerApdater.java

@@ -0,0 +1,44 @@
+package com.wiipu.peopleheart.home.adapter;
+
+import android.content.Context;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.nostra13.universalimageloader.core.ImageLoader;
+import com.wiipu.commonlib.base.BaseAdapter;
+import com.wiipu.commonlib.base.BaseViewHolder;
+import com.wiipu.commonlib.utils.image.ImgLoader;
+import com.wiipu.peopleheart.R;
+import com.wiipu.peopleheart.home.response.homeNewsResponse;
+
+import java.util.List;
+
+/**
+ * Description:
+ */
+public class homeRcylerApdater extends BaseAdapter<homeNewsResponse.dataBean> {
+
+    Context mContext;
+
+    public homeRcylerApdater(List<homeNewsResponse.dataBean> datas, Context context) {
+        super(datas, context);
+        mContext = context;
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_home_rcyler;
+    }
+
+    @Override
+    public void convert(BaseViewHolder holder, int position, homeNewsResponse.dataBean data) {
+        ImageView imageView = holder.getItemView().findViewById(R.id.iv_tushuominzhu);
+        TextView textview = holder.getItemView().findViewById(R.id.tv_tushuominzhu);
+
+        //ImgLoader.loadImage(mContext, data.getUrl(), imageView);
+        Glide.with(mContext).load(data.getUrl()).into(imageView);
+        textview.setText(data.getTitle());
+
+    }
+}

+ 5 - 0
app/src/main/java/com/wiipu/peopleheart/home/contract/HomeContract.java

@@ -1,6 +1,7 @@
 package com.wiipu.peopleheart.home.contract;
 
 import com.wiipu.commonlib.base.BaseView;
+import com.wiipu.peopleheart.home.response.homeNewsResponse;
 import com.wiipu.peopleheart.home.response.topNewsResponse;
 
 /**
@@ -10,8 +11,12 @@ import com.wiipu.peopleheart.home.response.topNewsResponse;
 public interface HomeContract {
     interface View extends BaseView {
         void showTopConvenientNews(topNewsResponse topNewsResponse);
+
+        void showHomeNews(homeNewsResponse homeNewsResponse);
     }
     interface Presenter{
         void getTopConvenientNews();
+
+        void getHomeNews();
     }
 }

+ 25 - 0
app/src/main/java/com/wiipu/peopleheart/home/presenter/HomePresenter.java

@@ -9,6 +9,7 @@ import com.wiipu.commonlib.utils.LogUtils;
 import com.wiipu.commonlib.utils.VerifyUtils;
 import com.wiipu.peopleheart.application.Constants;
 import com.wiipu.peopleheart.home.contract.HomeContract;
+import com.wiipu.peopleheart.home.response.homeNewsResponse;
 import com.wiipu.peopleheart.home.response.topNewsResponse;
 import com.wiipu.peopleheart.home.services.HomeServices;
 
@@ -48,4 +49,28 @@ public class HomePresenter extends BasePresenter<HomeContract.View> implements H
                 });
         mSubscriptions.add(subscription);
     }
+
+    @Override
+    public void getHomeNews() {
+        final String method = "showImg";
+        long timestamp = System.currentTimeMillis();
+        String sign = VerifyUtils.getSign(method, timestamp);
+        Subscription subscription = HttpClient.getInstance()
+                .create(HomeServices.class)
+                .getHomeNews(method, timestamp, Constants.SRC, sign)
+                .compose(RxTransformer.<BaseResponse<homeNewsResponse>>apply())
+                .subscribe(new HttpObserver<homeNewsResponse>() {
+                    @Override
+                    public void success(homeNewsResponse result) {
+                        mView.showHomeNews(result);
+                    }
+
+                    @Override
+                    public void fail(String msg) {
+                        mView.showError(msg);
+                        LogUtils.e(msg);
+                    }
+                });
+        mSubscriptions.add(subscription);
+    }
 }

+ 89 - 0
app/src/main/java/com/wiipu/peopleheart/home/response/homeNewsResponse.java

@@ -0,0 +1,89 @@
+package com.wiipu.peopleheart.home.response;
+
+import java.util.List;
+
+/**
+ * Description:
+ */
+public class homeNewsResponse {
+
+    /**
+     *"total": 4,
+     "resData": [
+     {
+     "id": "47",
+     "url": "http://rongzhi110.xazhima.com/userfiles/upload/20180903/201809031132326547.jpg",
+     "title": "西安电子科技大学"
+     },
+     {
+     "id": "46",
+     "url": "http://rongzhi110.xazhima.com/userfiles/upload/20180823/201808231047577348.png",
+     "title": "酒厂欠债994万以900吨白酒相"
+     },
+     {
+     "id": "45",
+     "url": "http://rongzhi110.xazhima.com/userfiles/upload/20180823/201808231046524639.jpg",
+     "title": "西安图书馆太火爆需排队抽号 学习"
+     },
+     {
+     "id": "44",
+     "url": "http://rongzhi110.xazhima.com/userfiles/upload/20180823/201808231045022874.jpg",
+     "title": "三亚“明星楼盘”被查封 业主:1"
+     }
+     ]
+
+     */
+
+    private String total;
+    private List<dataBean> resData;
+
+    public String getTotal() {
+        return total;
+    }
+
+    public void setTotal(String total) {
+        this.total = total;
+    }
+
+    public List<dataBean> getResData() {
+        return resData;
+    }
+
+    public void setResData(List<dataBean> resData) {
+        this.resData = resData;
+    }
+
+    public static class dataBean {
+        private String id;
+        private String url;
+        private String title;
+
+        public String getId() {
+            return id;
+        }
+
+        public void setId(String id) {
+            this.id = id;
+        }
+
+        public String getUrl() {
+            return url;
+        }
+
+        public void setUrl(String url) {
+            this.url = url;
+        }
+
+        public String getTitle() {
+            return title;
+        }
+
+        public void setTitle(String title) {
+            this.title = title;
+        }
+    }
+
+
+
+
+}

+ 8 - 0
app/src/main/java/com/wiipu/peopleheart/home/services/HomeServices.java

@@ -1,6 +1,7 @@
 package com.wiipu.peopleheart.home.services;
 
 import com.wiipu.commonlib.base.BaseResponse;
+import com.wiipu.peopleheart.home.response.homeNewsResponse;
 import com.wiipu.peopleheart.home.response.topNewsResponse;
 
 import retrofit2.http.Field;
@@ -19,4 +20,11 @@ public interface HomeServices {
                                                                   @Field("timestamp") long timestamp,
                                                                   @Field("source") int source,
                                                                   @Field("sign") String sign);
+
+    @POST("api.php")
+    @FormUrlEncoded
+    Observable<BaseResponse<homeNewsResponse>> getHomeNews(@Field("method") String method,
+                                                                    @Field("timestamp") long timestamp,
+                                                                    @Field("source") int source,
+                                                                    @Field("sign") String sign);
 }

+ 2 - 0
app/src/main/java/com/wiipu/peopleheart/widget/convenientBanner/GlideHolderView.java

@@ -8,6 +8,7 @@ import android.widget.ImageView;
 import com.bigkoo.convenientbanner.holder.Holder;
 import com.bumptech.glide.Glide;
 import com.nostra13.universalimageloader.core.ImageLoader;
+import com.wiipu.commonlib.utils.image.ImgLoader;
 import com.wiipu.peopleheart.R;
 
 /**
@@ -30,5 +31,6 @@ public class GlideHolderView implements Holder<String> {
 
        // ImageLoader.getInstance().displayImage(data,imageView);
         Glide.with(context).load(data).into(imageView);
+//        ImgLoader.loadImage(context, data, imageView);
     }
 }

+ 5 - 2
app/src/main/res/layout/gridview_item.xml

@@ -5,17 +5,20 @@
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:gravity="center"
+    android:layout_margin="@dimen/margin20dp"
     >
 
     <ImageView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:layout_width="@dimen/margin160dp"
+        android:layout_height="@dimen/margin120dp"
         android:id="@+id/iv_tushuominzhu"
         />
 
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:ellipsize="end"
+        android:singleLine="true"
         android:textSize="@dimen/textsize_12"
         android:id="@+id/tv_tushuominzhu"
         />

+ 1 - 1
build.gradle

@@ -7,7 +7,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.3'
+        classpath 'com.android.tools.build:gradle:3.1.4'
         
 
         // NOTE: Do not place your application dependencies here; they belong