diff --git a/cm_utils/src/main/res/drawable/shape_search_input_box.xml b/cm_utils/src/main/res/drawable/shape_search_input_box.xml
index 4d2a79c..ca94e1d 100644
--- a/cm_utils/src/main/res/drawable/shape_search_input_box.xml
+++ b/cm_utils/src/main/res/drawable/shape_search_input_box.xml
@@ -1,6 +1,9 @@
-
+
+
\ No newline at end of file
diff --git a/modulemain/build.gradle b/modulemain/build.gradle
index be5e6ea..2e5ba8d 100644
--- a/modulemain/build.gradle
+++ b/modulemain/build.gradle
@@ -57,6 +57,8 @@ dependencies {
implementation "com.scwang.smartrefresh:SmartRefreshLayout:${rootProject.ext.gSmartRefreshLayoutVersion}"
//角标
implementation 'q.rorbin:badgeview:1.1.3'
+ //流布局
+ implementation 'com.beloo.widget:ChipsLayoutManager:0.3.7@aar'
//Rxjava
implementation "io.reactivex.rxjava2:rxjava:${rootProject.ext.gRxJavaVersion}"
implementation "io.reactivex.rxjava2:rxandroid:${rootProject.ext.gRxAndroid}"
diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/ChooseCityActivity.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/ChooseCityActivity.java
index 5fa774a..4347696 100644
--- a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/ChooseCityActivity.java
+++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/ChooseCityActivity.java
@@ -1,27 +1,305 @@
package com.tengshisoft.mudulemain.cultural.activitys.base;
-import androidx.appcompat.app.AppCompatActivity;
-import butterknife.ButterKnife;
-import butterknife.Unbinder;
-
+import android.app.ProgressDialog;
+import android.content.Intent;
import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
+import com.beloo.widget.chipslayoutmanager.ChipsLayoutManager;
import com.sucstepsoft.cm_utils.constant.PathConfig;
+import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView;
+import com.sucstepsoft.cm_utils.utils.ToastUtils;
+import com.sucstepsoft.cm_utils.utils.UIUtil;
+import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.tengshisoft.mudulemain.R;
+import com.tengshisoft.mudulemain.R2;
+import com.tengshisoft.mudulemain.cultural.adapter.AreaListAdapter;
+import com.tengshisoft.mudulemain.cultural.beans.AreaListBean;
+import com.tengshisoft.mudulemain.cultural.net.HomeApi;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import androidx.core.widget.NestedScrollView;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
@Route(path = PathConfig.PATH_MODULE_MAIN_CHOOSE_CITY)
public class ChooseCityActivity extends BaseActivity {
+ @BindView(R2.id.tv_search)
+ TypeFaceTextView mTvSearch;
+ @BindView(R2.id.tv_current_area)
+ TextView mTvCurrentArea;
+ @BindView(R2.id.rlv_area_1_content)
+ RecyclerView mRlvArea1Content;
+ @BindView(R2.id.tv_area_1_hint)
+ TextView mTvArea1Hint;
+ @BindView(R2.id.rlv_area_2_content)
+ RecyclerView mRlvArea2Content;
+ @BindView(R2.id.tv_area_2_hint)
+ TextView mTvArea2Hint;
+ @BindView(R2.id.rlv_area_3_content)
+ RecyclerView mRlvArea3Content;
+ @BindView(R2.id.tv_area_3_hint)
+ TextView mTvArea3Hint;
+ @BindView(R2.id.rlv_area_4_content)
+ RecyclerView mRlvArea4Content;
+ @BindView(R2.id.tv_area_4_hint)
+ TextView mTvArea4Hint;
+ @BindView(R2.id.nsv_content)
+ NestedScrollView mNsvContent;
private Unbinder mBind;
+ private String mCurrentCityName = "";
+ private String mCurrentCityCode = "";
+ private AreaListAdapter mArea1Adapter;
+ private AreaListAdapter mArea2Adapter;
+ private AreaListAdapter mArea3Adapter;
+ private AreaListAdapter mArea4Adapter;
+ private List mArea1List;
+ private List mArea2List;
+ private List mArea3List;
+ private List mArea4List;
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("地区选择");
+ mTvPublish.setVisibility(View.VISIBLE);
+ mTvPublish.setText("确定");
+ mTvCurrentArea.setText(mCurrentCityName);
+ mTvPublish.setOnClickListener(v -> doChooseArea());
+ mCurrentCityName = UserLgUtils.getCurrentCity();
+ mTvCurrentArea.setText(mCurrentCityName);
+ mCurrentCityCode = UserLgUtils.getCurrentCityCode();
refreshView(STATE_LOAD_SUCCESS);
+ ChipsLayoutManager area1Manager = ChipsLayoutManager.newBuilder(mActivity)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ ChipsLayoutManager area2Manager = ChipsLayoutManager.newBuilder(mActivity)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ ChipsLayoutManager area3Manager = ChipsLayoutManager.newBuilder(mActivity)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ ChipsLayoutManager area4Manager = ChipsLayoutManager.newBuilder(mActivity)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ mArea1List = new ArrayList<>();
+ mArea2List = new ArrayList<>();
+ mArea3List = new ArrayList<>();
+ mArea4List = new ArrayList<>();
+ mRlvArea1Content.setLayoutManager(area1Manager);
+ mRlvArea2Content.setLayoutManager(area2Manager);
+ mRlvArea3Content.setLayoutManager(area3Manager);
+ mRlvArea4Content.setLayoutManager(area4Manager);
+
+ mArea1Adapter = new AreaListAdapter(mActivity, mArea1List);
+ mArea2Adapter = new AreaListAdapter(mActivity, mArea2List);
+ mArea3Adapter = new AreaListAdapter(mActivity, mArea3List);
+ mArea4Adapter = new AreaListAdapter(mActivity, mArea4List);
+
+ mRlvArea1Content.setAdapter(mArea1Adapter);
+ mRlvArea2Content.setAdapter(mArea2Adapter);
+ mRlvArea3Content.setAdapter(mArea3Adapter);
+ mRlvArea4Content.setAdapter(mArea4Adapter);
+
+ mArea1Adapter.addOnItemClickListener(areaListBean -> {
+ getArea2List("");
+ });
+ mArea2Adapter.addOnItemClickListener(areaListBean -> {
+ getArea3List("");
+ });
+ mArea3Adapter.addOnItemClickListener(areaListBean -> {
+ getArea4List("");
+ });
+ mArea4Adapter.addOnItemClickListener(areaListBean -> {
+ //TODO 进行选择
+ });
+
+ }
+
+ private void getArea1List() {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(HomeApi.class)
+ .getAreaListByPid("")
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(AreaListBean areaListBean) {
+ dialog.dismiss();
+ mArea2List.clear();
+ mArea2Adapter.setData(mArea2List);
+ mTvArea2Hint.setVisibility(View.VISIBLE);
+ mTvArea2Hint.setText("请选择");
+
+ mArea3List.clear();
+ mArea3Adapter.setData(mArea2List);
+ mTvArea3Hint.setVisibility(View.VISIBLE);
+ mTvArea3Hint.setText("请选择");
+
+ mArea4List.clear();
+ mArea4Adapter.setData(mArea2List);
+ mTvArea4Hint.setVisibility(View.VISIBLE);
+ mTvArea4Hint.setText("请选择");
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void getArea2List(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(HomeApi.class)
+ .getAreaListByPid(id)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(AreaListBean areaListBean) {
+ dialog.dismiss();
+ mArea3List.clear();
+ mArea3Adapter.setData(mArea2List);
+ mTvArea3Hint.setVisibility(View.VISIBLE);
+ mTvArea3Hint.setText("请选择");
+
+ mArea4List.clear();
+ mArea4Adapter.setData(mArea2List);
+ mTvArea4Hint.setVisibility(View.VISIBLE);
+ mTvArea4Hint.setText("请选择");
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void getArea3List(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(HomeApi.class)
+ .getAreaListByPid(id)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(AreaListBean areaListBean) {
+ dialog.dismiss();
+ mArea4List.clear();
+ mArea4Adapter.setData(mArea2List);
+ mTvArea4Hint.setVisibility(View.VISIBLE);
+ mTvArea4Hint.setText("请选择");
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void getArea4List(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(HomeApi.class)
+ .getAreaListByPid(id)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(AreaListBean areaListBean) {
+ dialog.dismiss();
+ mArea4List = new ArrayList<>();
+ mArea4Adapter.setData(mArea4List);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 确定选择
+ */
+ private void doChooseArea() {
+ if (TextUtils.isEmpty(mCurrentCityCode)) {
+ ToastUtils.showShort("请选择地区");
+ } else {
+ Intent intent = new Intent();
+ intent.putExtra("chooseCity", mCurrentCityName);
+ intent.putExtra("chooseCityCode", mCurrentCityCode);
+ setResult(333, intent);
+ finish();
+ }
}
@Override
@@ -36,4 +314,6 @@ public class ChooseCityActivity extends BaseActivity {
protected int setLayoutId() {
return R.layout.activity_choose_city;
}
+
+
}
diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/adapter/AreaListAdapter.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/adapter/AreaListAdapter.java
new file mode 100644
index 0000000..58f7565
--- /dev/null
+++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/adapter/AreaListAdapter.java
@@ -0,0 +1,37 @@
+package com.tengshisoft.mudulemain.cultural.adapter;
+
+import android.content.Context;
+import android.text.Layout;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.tengshisoft.mudulemain.R;
+import com.tengshisoft.mudulemain.cultural.beans.AreaListBean;
+import com.tengshisoft.mudulemain.cultural.holder.AreaHolder;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/7/21 - 10:56 AM
+ * 邮箱: itgaojian@163.com
+ * 描述:
+ */
+public class AreaListAdapter extends BaseRecyclerAdapter {
+ public AreaListAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public AreaHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_area_layout, parent, false);
+ return new AreaHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(AreaHolder areaHolder, int i) {
+
+ }
+}
diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/beans/AreaListBean.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/beans/AreaListBean.java
new file mode 100644
index 0000000..fb6901a
--- /dev/null
+++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/beans/AreaListBean.java
@@ -0,0 +1,19 @@
+package com.tengshisoft.mudulemain.cultural.beans;
+
+/**
+ * 作者: adam
+ * 日期: 2020/7/21 - 10:49 AM
+ * 邮箱: itgaojian@163.com
+ * 描述:
+ */
+public class AreaListBean {
+ private boolean checkEd;
+
+ public boolean isCheckEd() {
+ return checkEd;
+ }
+
+ public void setCheckEd(boolean checkEd) {
+ this.checkEd = checkEd;
+ }
+}
diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/holder/AreaHolder.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/holder/AreaHolder.java
new file mode 100644
index 0000000..e1a6723
--- /dev/null
+++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/holder/AreaHolder.java
@@ -0,0 +1,24 @@
+package com.tengshisoft.mudulemain.cultural.holder;
+
+import android.view.View;
+import android.widget.TextView;
+
+import com.tengshisoft.mudulemain.R;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * 作者: adam
+ * 日期: 2020/7/21 - 10:56 AM
+ * 邮箱: itgaojian@163.com
+ * 描述:
+ */
+public class AreaHolder extends RecyclerView.ViewHolder {
+ public TextView mTvName;
+
+ public AreaHolder(@NonNull View itemView) {
+ super(itemView);
+ mTvName = itemView.findViewById(R.id.tv_name);
+ }
+}
diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/net/HomeApi.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/net/HomeApi.java
index 894a0a6..3f26b50 100644
--- a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/net/HomeApi.java
+++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/net/HomeApi.java
@@ -5,6 +5,7 @@ import com.tengshisoft.moduleactivity.beans.ActivityListBeans;
import com.tengshisoft.modulecultural.bean.CulturalLiveBean;
import com.tengshisoft.modulecultural.bean.LegacyListBean;
import com.tengshisoft.moduleplace.beans.PlaceListBean;
+import com.tengshisoft.mudulemain.cultural.beans.AreaListBean;
import com.tengshisoft.mudulemain.cultural.beans.BaseUserBean;
import com.tengshisoft.mudulemain.cultural.beans.CommentListBean;
import com.tengshisoft.mudulemain.cultural.beans.NewsItemBean;
@@ -236,4 +237,8 @@ public interface HomeApi {
@Headers({"base_url_name:live", "Content-Type:application/json", "Accept:application/json"})
@GET("app/liveplan/listpageliveplanrelease")
Observable getLiveRecord(@Query("page") String page, @Query("rows") String rows);
+
+ @Headers({"Content-Type:application/json", "Accept:application/json"})
+ @GET("app/liveplan/listpageliveplanrelease")
+ Observable getAreaListByPid(@Query("parentId") String pId);
}
diff --git a/modulemain/src/main/res/drawable/sel_line_ra_3.xml b/modulemain/src/main/res/drawable/sel_line_ra_3.xml
new file mode 100644
index 0000000..888704f
--- /dev/null
+++ b/modulemain/src/main/res/drawable/sel_line_ra_3.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modulemain/src/main/res/drawable/shape_gray_line_ra_2.xml b/modulemain/src/main/res/drawable/shape_gray_line_ra_2.xml
new file mode 100644
index 0000000..a79d893
--- /dev/null
+++ b/modulemain/src/main/res/drawable/shape_gray_line_ra_2.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modulemain/src/main/res/drawable/shape_red_line_ra_2.xml b/modulemain/src/main/res/drawable/shape_red_line_ra_2.xml
new file mode 100644
index 0000000..79037c0
--- /dev/null
+++ b/modulemain/src/main/res/drawable/shape_red_line_ra_2.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modulemain/src/main/res/layout/activity_choose_city.xml b/modulemain/src/main/res/layout/activity_choose_city.xml
index 914a824..b64ac0e 100644
--- a/modulemain/src/main/res/layout/activity_choose_city.xml
+++ b/modulemain/src/main/res/layout/activity_choose_city.xml
@@ -4,6 +4,284 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/white"
+ android:orientation="vertical"
tools:context=".cultural.activitys.base.ChooseCityActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modulemain/src/main/res/layout/item_area_layout.xml b/modulemain/src/main/res/layout/item_area_layout.xml
new file mode 100644
index 0000000..1bfc1dc
--- /dev/null
+++ b/modulemain/src/main/res/layout/item_area_layout.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
\ No newline at end of file