浏览代码

课程导航筛选

316044749 7 年之前
父节点
当前提交
15979548d1

+ 4 - 0
app/src/main/java/com/ynstkz/shitu/android/activity/OrgListActivity.java

@@ -26,6 +26,8 @@ public class OrgListActivity extends TitleBarActivity {
     private OrgListFragment orgListFragment;
     private boolean isHideTitleView;
 
+    private String agencyTypeId;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -45,9 +47,11 @@ public class OrgListActivity extends TitleBarActivity {
 
     private void initData() {
         isHideTitleView = getIntent().getBooleanExtra("isHideTitleView", false);
+        agencyTypeId = getIntent().getStringExtra("agencyTypeId");
         if (isHideTitleView) {
             orgListFragment.showHideFilterView(View.GONE);
         }
+        orgListFragment.setOrgFilterType(agencyTypeId);
     }
 
 }

+ 18 - 7
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgNavigationGridAdapter.java

@@ -9,6 +9,7 @@ import com.common.library.adapter.CCAdapterHolder;
 import com.common.library.adapter.CCListAdapter;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.bean.CourseNavigationBean;
+import com.ynstkz.shitu.android.bean.OrgNavigationBean;
 
 import java.util.List;
 
@@ -17,15 +18,21 @@ import java.util.List;
  * 作者:fuchangle on 2018/2/6 14:37
  */
 
-public class OrgNavigationGridAdapter extends CCListAdapter<CourseNavigationBean>{
+public class OrgNavigationGridAdapter extends CCListAdapter<OrgNavigationBean.DataBean>{
 
-    public OrgNavigationGridAdapter(Context context, List<CourseNavigationBean> adapterContent) {
+    final int[] icons = new int[]{R.drawable.org_xueqian, R.drawable.org_chudeng, R.drawable.org_zhongdeng,
+            R.drawable.org_gaodeng, R.drawable.org_chengren, R.drawable.org_peixun, R.drawable.org_chuguo, R.drawable.org_other};
+
+    private Context context;
+    private List<OrgNavigationBean.DataBean> adapterContent;
+
+    public OrgNavigationGridAdapter(Context context, List<OrgNavigationBean.DataBean> adapterContent) {
         super(context, adapterContent);
     }
 
     @Override
-    public CCAdapterHolder<CourseNavigationBean> createHolder(int type) {
-        return new CCAdapterHolder<CourseNavigationBean>() {
+    public CCAdapterHolder<OrgNavigationBean.DataBean> createHolder(int type) {
+        return new CCAdapterHolder<OrgNavigationBean.DataBean>() {
 
             ImageView icon;
             TextView tv_lab;
@@ -42,9 +49,13 @@ public class OrgNavigationGridAdapter extends CCListAdapter<CourseNavigationBean
             }
 
             @Override
-            public void updateView(CourseNavigationBean content, int position) {
-                icon.setImageResource(content.getIcon_ids());
-                tv_lab.setText(content.getLab());
+            public void updateView(OrgNavigationBean.DataBean content, int position) {
+                try {
+                    tv_lab.setText(content.getTitle());
+                    icon.setImageResource(icons[position]);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
         };
     }

+ 11 - 0
app/src/main/java/com/ynstkz/shitu/android/bean/OrgNavigationBean.java

@@ -23,15 +23,18 @@ public class OrgNavigationBean extends BaseBean{
     }
 
     public static class DataBean implements Serializable{
+
         /**
          * navigateId : 1
          * title : 学前教育
+         * typeId : 6
          * icon : null
          * linkUrl : http://test.com
          */
 
         private int navigateId;
         private String title;
+        private String typeId;
         private String icon;
         private String linkUrl;
 
@@ -51,6 +54,14 @@ public class OrgNavigationBean extends BaseBean{
             this.title = title;
         }
 
+        public String getTypeId() {
+            return typeId;
+        }
+
+        public void setTypeId(String typeId) {
+            this.typeId = typeId;
+        }
+
         public String getIcon() {
             return icon;
         }

+ 15 - 6
app/src/main/java/com/ynstkz/shitu/android/data/RequestGroup.java

@@ -269,17 +269,26 @@ public class RequestGroup {
     /**
      * 获取机构列表
      * @param pageNumber
-     * @param pageSize
      * @param callback
      */
-    public static void getNearbyAgencyList(String pageNumber, String pageSize, String location, Callback callback){
+    public static void getNearbyAgencyList(String pageNumber, String lon, String lat, String agencyTypeId, String sortType, String courseTypeId, Callback callback){
         Map<String, String> params = getSystemParams();
         params.put("pageNumber",pageNumber);
-        params.put("pageSize", pageSize);
-        if(!TextUtils.isEmpty(location)){
-            params.put("location", location);
+        if(!TextUtils.isEmpty(lon)){
+            params.put("location", lon);
+        }
+        if(!TextUtils.isEmpty(lat)){
+            params.put("lat", lat);
+        }
+        if(!TextUtils.isEmpty(agencyTypeId)){
+            params.put("agencyTypeId", agencyTypeId);
+        }
+        if(!TextUtils.isEmpty(sortType)){
+            params.put("sortType", sortType);
+        }
+        if(!TextUtils.isEmpty(courseTypeId)){
+            params.put("courseTypeId", courseTypeId);
         }
-
         OkHttpUtils.get().url(UrlCat.URL_AGENCY_LIST).params(params).build().execute(callback);
     }
 

+ 38 - 31
app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java

@@ -44,6 +44,7 @@ import com.ynstkz.shitu.android.bean.CourseNavigationBean;
 import com.ynstkz.shitu.android.bean.HomeBannerBean;
 import com.ynstkz.shitu.android.bean.LocationDataBean;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
+import com.ynstkz.shitu.android.bean.OrgNavigationBean;
 import com.ynstkz.shitu.android.bean.OrgRecommendListBean;
 import com.ynstkz.shitu.android.common.Constants;
 import com.ynstkz.shitu.android.data.RequestGroup;
@@ -100,6 +101,8 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
     private double longitude;
     private double latitude;
 
+    private OrgNavigationGridAdapter orgNavigationGridAdapter;
+
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.fm_home, null);
@@ -176,8 +179,16 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
         gvCourseNavigation.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+
+                if(orgNavigationGridAdapter == null){
+                    return;
+                }
+
+                OrgNavigationBean.DataBean dataBean = (OrgNavigationBean.DataBean)adapterView.getAdapter().getItem(i);
+
                 Intent intent = new Intent(getActivity(), OrgListActivity.class);
                 intent.putExtra("isHideTitleView", true);
+                intent.putExtra("agencyTypeId", dataBean.getTypeId());
                 startActivity(intent);
             }
         });
@@ -243,37 +254,33 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
      */
     private void getOrgNavigation() {
 
-//        RequestGroup.getOrgNavigation(new Callback() {
-//            @Override
-//            public Object parseNetworkResponse(Response response, int id) throws Exception {
-//                return new Gson().fromJson(response.body().string(), OrgNavigationBean.class);
-//            }
-//
-//            @Override
-//            public void onError(Call call, Exception e, int id) {
-//                showToast(getActivity(), getString(R.string.error_msg));
-//            }
-//
-//            @Override
-//            public void onResponse(Object response, int id) {
-//
-//            }
-//        });
-
-        int[] icons = new int[]{R.drawable.org_xueqian, R.drawable.org_chudeng, R.drawable.org_zhongdeng,
-                R.drawable.org_gaodeng, R.drawable.org_chengren, R.drawable.org_peixun, R.drawable.org_chuguo, R.drawable.org_other};
-        String[] labs = getResources().getStringArray(R.array.org_navigation);
-
-        List<CourseNavigationBean> listCourseNavigation = new ArrayList<>();
-        for (int i = 0; i < 8; i++) {
-            CourseNavigationBean courseNavigationBean = new CourseNavigationBean();
-            courseNavigationBean.setIcon_ids(icons[i]);
-            courseNavigationBean.setLab(labs[i]);
-            listCourseNavigation.add(courseNavigationBean);
-        }
-        OrgNavigationGridAdapter orgNavigationGridAdapter = new OrgNavigationGridAdapter(getActivity(), listCourseNavigation);
-        gvCourseNavigation.setAdapter(orgNavigationGridAdapter);
-        orgNavigationGridAdapter.notifyDataSetChanged();
+        RequestGroup.getOrgNavigation(new Callback() {
+            @Override
+            public Object parseNetworkResponse(Response response, int id) throws Exception {
+                return new Gson().fromJson(response.body().string(), OrgNavigationBean.class);
+            }
+
+            @Override
+            public void onError(Call call, Exception e, int id) {
+                showToast(getString(R.string.error_msg));
+            }
+
+            @Override
+            public void onResponse(Object response, int id) {
+                OrgNavigationBean orgNavigationBean = (OrgNavigationBean)response;
+                if(orgNavigationBean != null){
+                    if("200".equals(orgNavigationBean.getCode())){
+                        if(orgNavigationBean.getData() != null && orgNavigationBean.getData().size() > 0){
+                            orgNavigationGridAdapter = new OrgNavigationGridAdapter(getActivity(), orgNavigationBean.getData());
+                            gvCourseNavigation.setAdapter(orgNavigationGridAdapter);
+                            orgNavigationGridAdapter.notifyDataSetChanged();
+                        }
+                    } else {
+                        showToast(orgNavigationBean.getMsg());
+                    }
+                }
+            }
+        });
     }
 
     /**

+ 37 - 8
app/src/main/java/com/ynstkz/shitu/android/fragment/OrgListFragment.java

@@ -1,5 +1,6 @@
 package com.ynstkz.shitu.android.fragment;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -26,10 +27,12 @@ import com.ynstkz.shitu.android.adapter.OrgFilterListAdapter;
 import com.ynstkz.shitu.android.adapter.OrgListAdapter;
 import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.BaseFragment;
+import com.ynstkz.shitu.android.bean.LocationDataBean;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
 import com.ynstkz.shitu.android.bean.OrgListBean;
 import com.ynstkz.shitu.android.common.Constants;
 import com.ynstkz.shitu.android.data.RequestGroup;
+import com.ynstkz.shitu.android.data.SharedPreferencesUtils;
 import com.ynstkz.shitu.android.event.LocationChangedEvent;
 
 import org.greenrobot.eventbus.EventBus;
@@ -83,6 +86,9 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
 
     private double longitude;
     private double latitude;
+    private String sortType;
+
+    private String agencyTypeId;
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -101,7 +107,9 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
 
     private void initData() {
         pageNumber = 1;
-        getOrgList(Constants.KM_LONGITUDE + "," + Constants.KM_LATITUDE);
+        longitude = Double.parseDouble(Constants.KM_LONGITUDE);
+        latitude = Double.parseDouble(Constants.KM_LATITUDE);
+        getOrgList();
     }
 
     private void setListener() {
@@ -161,7 +169,7 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
         llLocationSelect.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                startActivityForResult(new Intent(getActivity(), LocationSelectActivity.class), 10);
+                startActivityForResult(new Intent(getActivity(), LocationSelectActivity.class), 20);
             }
         });
 
@@ -198,21 +206,21 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
     @Override
     public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
         pageNumber = 1;
-        getOrgList(longitude + "," + latitude);
+        getOrgList();
     }
 
     @Override
     public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
         pageNumber++;
-        getOrgList(longitude + "," + latitude);
+        getOrgList();
     }
 
     /**
      * 获取推荐机构列表
      */
-    private void getOrgList(String location) {
+    private void getOrgList() {
 
-        RequestGroup.getNearbyAgencyList(pageNumber + "", "10", location, new Callback() {
+        RequestGroup.getNearbyAgencyList(pageNumber + "", longitude+"", latitude+"", agencyTypeId, sortType, "", new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgListBean.class);
@@ -280,6 +288,11 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
         llHomeTitle.setVisibility(visibility);
     }
 
+    public void setOrgFilterType(String agencyTypeId){
+        this.agencyTypeId = agencyTypeId;
+        getOrgList();
+    }
+
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onMessageEvent(LocationChangedEvent event) {
         if (event.getLocationDataBean() != null) {
@@ -288,10 +301,26 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
             pageNumber = 1;
             longitude = event.getLocationDataBean().getLongitude();
             latitude = event.getLocationDataBean().getLatitude();
-            getOrgList(longitude + "," + latitude);
+            getOrgList();
         } else {
             pageNumber = 1;
-            getOrgList("");
+            getOrgList();
+        }
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch (requestCode){
+            case 20:
+                if(resultCode == Activity.RESULT_OK) {
+                    LocationDataBean locationDataBean = new LocationDataBean();
+                    locationDataBean.setCity(data.getStringExtra("city"));
+                    locationDataBean.setLatitude(data.getDoubleExtra("latitude", 0));
+                    locationDataBean.setLongitude(data.getDoubleExtra("longitude", 0));
+                    EventBus.getDefault().post(new LocationChangedEvent(locationDataBean));
+                    SharedPreferencesUtils.setLocation(data.getStringExtra("city"));
+                }
+                break;
         }
     }