Browse Source

添加机构列表的筛选

316044749 7 years ago
parent
commit
34a7e8e3c5

+ 12 - 5
app/src/main/java/com/ynstkz/shitu/android/activity/HomeActivity.java

@@ -8,6 +8,7 @@ import android.support.v4.app.ActivityCompat;
 import android.support.v4.app.Fragment;
 import android.support.v4.content.ContextCompat;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -20,23 +21,19 @@ import com.amap.api.location.AMapLocationClientOption;
 import com.amap.api.location.AMapLocationListener;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
-import com.ynstkz.shitu.android.data.SharedPreferencesDao;
 import com.ynstkz.shitu.android.data.SharedPreferencesUtils;
 import com.ynstkz.shitu.android.event.LocationChangedEvent;
 import com.ynstkz.shitu.android.event.LoginEvent;
 import com.ynstkz.shitu.android.event.LogoutEvent;
 import com.ynstkz.shitu.android.event.RegisterSuccessEvent;
 import com.ynstkz.shitu.android.fragment.ConfirmationDialogFragment;
+import com.ynstkz.shitu.android.fragment.OrgListFragment;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
 import butterknife.Bind;
-import butterknife.ButterKnife;
 
 public class HomeActivity extends TitleBarActivity implements AMapLocationListener {
 
@@ -235,6 +232,16 @@ public class HomeActivity extends TitleBarActivity implements AMapLocationListen
     }
 
     @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if(mFragments[tabIndex] instanceof OrgListFragment){
+            if(((OrgListFragment)mFragments[tabIndex]).onKeyDown(keyCode, event)){
+                return true;
+            }
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    @Override
     protected void onDestroy() {
         super.onDestroy();
         EventBus.getDefault().unregister(this);

+ 47 - 0
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgFilterListAdapter.java

@@ -0,0 +1,47 @@
+package com.ynstkz.shitu.android.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.TextView;
+
+import com.common.library.adapter.CCAdapterHolder;
+import com.common.library.adapter.CCListAdapter;
+import com.ynstkz.shitu.android.R;
+
+import java.util.List;
+
+/**
+ * 作者:fuchangle on 2018/3/8 15:29
+ */
+
+public class OrgFilterListAdapter extends CCListAdapter<String>{
+
+    private Context context;
+
+    public OrgFilterListAdapter(Context context, List<String> adapterContent) {
+        super(context, adapterContent);
+    }
+
+    @Override
+    public CCAdapterHolder<String> createHolder(int type) {
+        return new CCAdapterHolder<String>() {
+
+            TextView tvFilterLab;
+
+            @Override
+            public int getResource() {
+                return R.layout.item_org_filter;
+            }
+
+            @Override
+            public void initializeView(View convertView) {
+                tvFilterLab = convertView.findViewById(R.id.tv_lab);
+            }
+
+            @Override
+            public void updateView(String content, int position) {
+                tvFilterLab.setText(content);
+            }
+        };
+    }
+}

+ 16 - 1
app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java

@@ -20,6 +20,7 @@ import android.widget.AdapterView;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
@@ -80,6 +81,8 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
     EditText editSearch;
     @Bind(R.id.iv_org_more)
     TextView ivOrgMore;
+    @Bind(R.id.rl_org_more)
+    RelativeLayout rlOrgMore;
 
 
     private List<HomeBannerBean.DataBean> listBanner;
@@ -143,7 +146,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
             public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
                 if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                     String searchKey = editSearch.getText().toString().trim();
-                    if(!TextUtils.isEmpty(searchKey)){
+                    if (!TextUtils.isEmpty(searchKey)) {
                         Intent intent = new Intent(getActivity(), OrgListActivity.class);
                         intent.putExtra("searchKey", searchKey);
                         intent.putExtra("isHideTitleView", true);
@@ -167,6 +170,18 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
                 startActivity(intent);
             }
         });
+
+        /**
+         * 更多机构
+         */
+        rlOrgMore.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent(getActivity(), OrgListActivity.class);
+                intent.putExtra("isHideTitleView", true);
+                startActivity(intent);
+            }
+        });
     }
 
     /**

+ 77 - 0
app/src/main/java/com/ynstkz/shitu/android/fragment/OrgListFragment.java

@@ -2,6 +2,7 @@ package com.ynstkz.shitu.android.fragment;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -16,6 +17,7 @@ import com.common.library.pulltorefresh.PullToRefreshListView;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.activity.OrgDetailActivity;
+import com.ynstkz.shitu.android.adapter.OrgFilterListAdapter;
 import com.ynstkz.shitu.android.adapter.OrgListAdapter;
 import com.ynstkz.shitu.android.base.BaseFragment;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
@@ -28,6 +30,7 @@ import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import butterknife.Bind;
@@ -50,6 +53,16 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
     LinearLayout llFilterMain;
     @Bind(R.id.ll_home_title)
     LinearLayout llHomeTitle;
+    @Bind(R.id.ll_filter_nearby)
+    LinearLayout llFilterNearby;
+    @Bind(R.id.ll_filter_org)
+    LinearLayout llFilterOrg;
+    @Bind(R.id.ll_filter_order)
+    LinearLayout llFilterOrder;
+    @Bind(R.id.lv_filter_content)
+    ListView lvFilterContent;
+    @Bind(R.id.ll_filter_content)
+    LinearLayout llFilterContent;
 
     private int pageNumber;
     private List<OrgItemBean> listOrg;
@@ -91,6 +104,44 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
                 }
             }
         });
+
+        //附近
+        llFilterNearby.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                llFilterContent.setVisibility(View.VISIBLE);
+                List<String> orgFilterLocation = Arrays.asList(getResources().getStringArray(R.array.org_filter_location));
+                showFilterContent(orgFilterLocation);
+            }
+        });
+
+        //机构
+        llFilterOrg.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                llFilterContent.setVisibility(View.VISIBLE);
+                List<String> orgFilterLocation = Arrays.asList(getResources().getStringArray(R.array.org_filter_org));
+                showFilterContent(orgFilterLocation);
+            }
+        });
+
+        //排序
+        llFilterOrder.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                llFilterContent.setVisibility(View.VISIBLE);
+                List<String> orgFilterLocation = Arrays.asList(getResources().getStringArray(R.array.org_filter_order));
+                showFilterContent(orgFilterLocation);
+            }
+        });
+
+        //关闭筛选
+        llFilterContent.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                llFilterContent.setVisibility(View.GONE);
+            }
+        });
     }
 
     @Override
@@ -156,6 +207,20 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
     }
 
     /**
+     * 筛选内容
+     *
+     * @param listContent
+     */
+    private void showFilterContent(List<String> listContent) {
+        if (listContent == null || listContent.size() == 0) {
+            return;
+        }
+        OrgFilterListAdapter orgFilterListAdapter = new OrgFilterListAdapter(getActivity(), listContent);
+        lvFilterContent.setAdapter(orgFilterListAdapter);
+        orgFilterListAdapter.notifyDataSetChanged();
+    }
+
+    /**
      * 显示和隐藏筛选view
      *
      * @param visibility
@@ -175,6 +240,18 @@ public class OrgListFragment extends BaseFragment implements PullToRefreshBase.O
         getOrgList(longitude + "," + latitude);
     }
 
+    // 返回键按下时会被调用
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == event.KEYCODE_BACK
+                && event.getAction() == KeyEvent.ACTION_DOWN) {
+            if(llFilterContent != null && llFilterContent.getVisibility() == View.VISIBLE){
+                llFilterContent.setVisibility(View.GONE);
+                return true;
+            }
+        }
+        return false;
+    }
+
     @Override
     public void onDestroyView() {
         super.onDestroyView();

+ 1 - 0
app/src/main/res/layout/fm_home.xml

@@ -49,6 +49,7 @@
                android:numColumns="4"/>
 
            <RelativeLayout
+               android:id="@+id/rl_org_more"
                android:layout_width="match_parent"
                android:layout_height="@dimen/company_40dp"
                android:layout_marginTop="@dimen/company_10dp"

+ 23 - 30
app/src/main/res/layout/fm_nearby.xml

@@ -22,6 +22,7 @@
         android:background="@color/white">
 
         <LinearLayout
+            android:id="@+id/ll_filter_nearby"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
@@ -53,6 +54,7 @@
             android:background="#f0f0f0"/>
 
         <LinearLayout
+            android:id="@+id/ll_filter_org"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
@@ -84,6 +86,7 @@
             android:background="#f0f0f0"/>
 
         <LinearLayout
+            android:id="@+id/ll_filter_order"
             android:layout_width="0dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
@@ -97,7 +100,7 @@
                 android:maxLines="1"
                 android:textSize="@dimen/company_16sp"
                 android:textColor="@color/color_666"
-                android:text="好评"/>
+                android:text="排序"/>
 
             <ImageView
                 android:layout_width="wrap_content"
@@ -107,42 +110,32 @@
 
         </LinearLayout>
 
-        <TextView
-            android:layout_width="@dimen/company_1dp"
-            android:layout_height="match_parent"
-            android:layout_marginTop="@dimen/company_10dp"
-            android:layout_marginBottom="@dimen/company_10dp"
-            android:background="#f0f0f0"/>
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <com.common.library.pulltorefresh.PullToRefreshListView
+            android:id="@+id/pullToRefresh"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
 
         <LinearLayout
-            android:layout_width="0dp"
-            android:layout_weight="1"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center"
-            android:padding="@dimen/company_10dp">
+            android:id="@+id/ll_filter_content"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/translucence">
 
-            <TextView
+            <ListView
+                android:id="@+id/lv_filter_content"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:maxLines="1"
-                android:textSize="@dimen/company_16sp"
-                android:textColor="@color/color_666"
-                android:text="英语"/>
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/company_10dp"
-                android:layout_marginLeft="@dimen/company_5dp"
-                android:src="@drawable/org_filt_nomal"/>
+                android:background="@color/white"/>
 
         </LinearLayout>
 
-    </LinearLayout>
-
-    <com.common.library.pulltorefresh.PullToRefreshListView
-        android:id="@+id/pullToRefresh"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
+    </RelativeLayout>
 
 </LinearLayout>

+ 17 - 0
app/src/main/res/layout/item_org_filter.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <TextView
+        android:id="@+id/tv_lab"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="@dimen/company_10dp"
+        android:paddingTop="@dimen/company_5dp"
+        android:paddingBottom="@dimen/company_5dp"
+        android:textSize="@dimen/company_16sp"/>
+
+</LinearLayout>

+ 40 - 0
app/src/main/res/values/arrays.xml

@@ -20,4 +20,44 @@
         <item>其他</item>
     </string-array>
 
+    <string-array name="org_filter_location">
+        <item>附近</item>
+        <item>昆明市</item>
+        <item>曲靖市</item>
+        <item>昭通市</item>
+        <item>玉溪市</item>
+        <item>楚雄州</item>
+        <item>红河州</item>
+        <item>文山州</item>
+        <item>普洱市</item>
+        <item>版纳州</item>
+        <item>大理州</item>
+        <item>保山市</item>
+        <item>德宏州</item>
+        <item>丽江市</item>
+        <item>怒江州</item>
+        <item>迪庆州</item>
+        <item>临沧市</item>
+    </string-array>
+
+    <string-array name="org_filter_org">
+        <item>全部</item>
+        <item>学前教育</item>
+        <item>初等教育</item>
+        <item>中等教育</item>
+        <item>高等教育</item>
+        <item>成人教育</item>
+        <item>培训机构</item>
+        <item>出国留学</item>
+        <item>其他</item>
+
+    </string-array>
+
+
+    <string-array name="org_filter_order">
+        <item>距离</item>
+        <item>评价</item>
+        <item>人气</item>
+    </string-array>
+
 </resources>

+ 1 - 1
app/src/main/res/values/colors.xml

@@ -7,7 +7,7 @@
 
     <color name="black">#000000</color>
     <color name="white">#ffffff</color>
-    <color name="translucence">#0e000000</color>
+    <color name="translucence">#80000000</color>
 
     <color name="default_bg">#F0F0F0</color>
     <color name="color_999">#999999</color>