소스 검색

完善兼职发布

ZhangXinYu 6 년 전
부모
커밋
9e6bc3a5f8

+ 35 - 11
app/src/main/AndroidManifest.xml

@@ -10,23 +10,47 @@
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".ui.activity.MainActivity"></activity>
-
-        <activity android:name=".ui.activity.identity.IdentityChoiceActivity" />
-        <activity android:name=".ui.activity.identity.IdentityHeadActivity" />
-        <activity android:name=".ui.activity.identity.IdentityRecruitersActivity" />
-        <activity android:name=".ui.activity.identity.IdentityCompanyActivity" />
-        <activity android:name=".ui.activity.identity.IdentityResultActivity" />
-        <activity android:name=".ui.activity.msg.MsgBoxActivity" />
-        <activity android:name=".ui.activity.position.PositionApplyManagerActivity" />
-        <activity android:name=".ui.activity.position.PositionReleaseActivity" />
-        <activity android:name=".ui.activity.LoginActivity">
+        <activity
+            android:name=".ui.activity.MainActivity"
+            android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+
+        <activity
+            android:name=".ui.activity.identity.IdentityChoiceActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.identity.IdentityHeadActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.identity.IdentityRecruitersActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.identity.IdentityCompanyActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.identity.IdentityResultActivity"
+
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.msg.MsgBoxActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.position.PositionApplyManagerActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.activity.position.PositionReleaseActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="stateHidden|adjustPan" />
+        <activity
+            android:name=".ui.activity.LoginActivity"
+            android:screenOrientation="portrait">
+
+        </activity>
     </application>
 
 </manifest>

+ 22 - 0
app/src/main/assets/clear_type.json

@@ -0,0 +1,22 @@
+[
+  {
+    "id": "2",
+    "name": "日结"
+  },
+  {
+    "id": "1",
+    "name": "周结"
+  },
+  {
+    "id": "0",
+    "name": "月结"
+  },
+  {
+    "id": "3",
+    "name": "完工结"
+  },
+  {
+    "id": "4",
+    "name": "其他方式"
+  }
+]

+ 30 - 0
app/src/main/assets/position_welfare.json

@@ -0,0 +1,30 @@
+[
+  {
+    "code": "0",
+    "name": "包住宿"
+  },
+  {
+    "code": "1",
+    "name": "包工作餐"
+  },
+  {
+    "code": "2",
+    "name": "交通补助"
+  },
+  {
+    "code": "3",
+    "name": "加班补助"
+  },
+  {
+    "code": "4",
+    "name": "有提成"
+  },
+  {
+    "code": "5",
+    "name": "奖金"
+  },
+  {
+    "code": "6",
+    "name": "转正机会"
+  }
+]

+ 102 - 0
app/src/main/java/com/webrain/dailypay/ui/adapter/gridview/PositionReleaseSelectAdapter.java

@@ -0,0 +1,102 @@
+package com.webrain.dailypay.ui.adapter.gridview;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.BaseInformationBean;
+import com.webrain.dailypay.ui.base.BaseViewHolder;
+import com.webrain.dailypay.utils.BaseInformationUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class PositionReleaseSelectAdapter extends BaseAdapter implements AdapterView.OnItemClickListener {
+    private Context mContext;
+    private List<BaseInformationBean> mData;
+    private List<BaseInformationBean> mSelect;
+
+    public PositionReleaseSelectAdapter(Context mContext, List<BaseInformationBean> mData) {
+        this.mContext = mContext;
+        this.mData = mData;
+        mSelect = new ArrayList<>();
+    }
+
+    public List<BaseInformationBean> getSelectPosition() {
+        return this.mSelect;
+    }
+
+    @Override
+    public int getCount() {
+        return mData == null ? 0 : mData.size();
+    }
+
+    @Override
+    public BaseInformationBean getItem(int position) {
+        return mData.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return 0;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder = null;
+        if (convertView == null) {
+            holder = new ViewHolder(mContext);
+            convertView = holder.getView();
+            convertView.setTag(holder);
+        } else {
+            holder = (ViewHolder) convertView.getTag();
+        }
+        BaseInformationBean bean = getItem(position);
+        if (mSelect.contains(bean)) {
+            holder.setType(bean.getName(), true);
+        } else {
+            holder.setType(bean.getName(), false);
+        }
+        return convertView;
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        BaseInformationBean bean = getItem(position);
+        if (mSelect.contains(bean)) {
+            mSelect.remove(bean);
+        } else {
+            mSelect.add(bean);
+        }
+        notifyDataSetChanged();
+    }
+
+
+    class ViewHolder extends BaseViewHolder {
+
+        @BindView(R.id.tv_type)
+        TextView tvType;
+
+        public ViewHolder(Context mContext) {
+            super(mContext);
+        }
+
+
+        @Override
+        public int bindViewLayoutId() {
+            return R.layout.item_gridview_position_release_select;
+        }
+
+        public void setType(String type, boolean isSelect) {
+            tvType.setText(type);
+            tvType.setSelected(isSelect);
+        }
+
+    }
+}

+ 18 - 2
app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionPartReleaseFragment.java

@@ -18,7 +18,9 @@ import android.widget.Switch;
 import android.widget.TextView;
 import android.widget.ViewFlipper;
 
+import com.webrain.baselibrary.widget.GridViewForScrollView;
 import com.webrain.dailypay.R;
+import com.webrain.dailypay.ui.adapter.gridview.PositionReleaseSelectAdapter;
 import com.webrain.dailypay.ui.adapter.gridview.PositionTypeSelectAdapter;
 import com.webrain.dailypay.ui.base.BaseFragment;
 import com.webrain.dailypay.ui.mvp.contacts.PositionPartReleaseFragmentContacts;
@@ -44,6 +46,10 @@ public class PositionPartReleaseFragment extends BaseFragment<PositionPartReleas
     DatePickerHolder deadlinePickHolder;
     EducationalRequirementHolder educationalRequirementHolder;
     WorkAddressHolder workAddressHolder;
+
+    PositionReleaseSelectAdapter mWelfareAdapter;
+    PositionReleaseSelectAdapter mClearTypeAdapter;
+
     @BindView(R.id.gv_type)
     GridView gvType;
     @BindView(R.id.btn_next)
@@ -59,9 +65,9 @@ public class PositionPartReleaseFragment extends BaseFragment<PositionPartReleas
     @BindView(R.id.et_rewards)
     EditText etRewards;
     @BindView(R.id.gv_welfare)
-    GridView gvWelfare;
+    GridViewForScrollView gvWelfare;
     @BindView(R.id.gv_payment)
-    GridView gvPayment;
+    GridViewForScrollView gvPayment;
     @BindView(R.id.s_team)
     Switch sTeam;
     @BindView(R.id.sal_again)
@@ -134,6 +140,16 @@ public class PositionPartReleaseFragment extends BaseFragment<PositionPartReleas
         gvType.setAdapter(mAdapter);
         gvType.setSelector(new ColorDrawable(Color.TRANSPARENT));
 
+        mWelfareAdapter = new PositionReleaseSelectAdapter(mContext, BaseInformationUtils.getPositionWelfare(mContext));
+        gvWelfare.setAdapter(mWelfareAdapter);
+        gvWelfare.setOnItemClickListener(mWelfareAdapter);
+        gvWelfare.setSelector(new ColorDrawable(Color.TRANSPARENT));
+
+        mClearTypeAdapter = new PositionReleaseSelectAdapter(mContext, BaseInformationUtils.getClearTypeList(mContext));
+        gvPayment.setAdapter(mClearTypeAdapter);
+        gvPayment.setOnItemClickListener(mClearTypeAdapter);
+        gvPayment.setSelector(new ColorDrawable(Color.TRANSPARENT));
+
         salWorkTimeFrame.initExpand(false);
         salWorkTime.initExpand(false);
         salRecruitmentDeadline.initExpand(false);

+ 10 - 8
app/src/main/java/com/webrain/dailypay/ui/viewholder/DatePickerHolder.java

@@ -10,8 +10,8 @@ import android.widget.TextView;
 import com.prolificinteractive.materialcalendarview.CalendarDay;
 import com.prolificinteractive.materialcalendarview.MaterialCalendarView;
 import com.prolificinteractive.materialcalendarview.OnDateSelectedListener;
-import com.prolificinteractive.materialcalendarview.OnMonthChangedListener;
 import com.prolificinteractive.materialcalendarview.format.ArrayWeekDayFormatter;
+import com.prolificinteractive.materialcalendarview.format.TitleFormatter;
 import com.webrain.baselibrary.utils.LunarUtils;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.ui.base.BaseViewHolder;
@@ -46,6 +46,15 @@ public class DatePickerHolder extends BaseViewHolder {
         String[] week = new String[]{"一", "二", "三", "四", "五", "六", "日"};
         mcvWorkTime.setWeekDayFormatter(new ArrayWeekDayFormatter(week));
         mcvWorkTime.setTopbarVisible(false);
+        mcvWorkTime.setTitleFormatter(new TitleFormatter() {
+            @Override
+            public CharSequence format(CalendarDay calendarDay) {
+                String month = monthStrs[calendarDay.getMonth() - 1];//转换成真实月份
+                String result = calendarDay.getYear() + "(" + LunarUtils.getLunarYear(calendarDay.getYear() + "", calendarDay.getMonth() + "", calendarDay.getDay() + "") + "年) " + month;
+                tvDateTitle.setText(result);
+                return null;
+            }
+        });
         mcvWorkTime.setOnDateChangedListener(new OnDateSelectedListener() {
             @Override
             public void onDateSelected(@NonNull MaterialCalendarView materialCalendarView, @NonNull CalendarDay calendarDay, boolean b) {
@@ -62,13 +71,6 @@ public class DatePickerHolder extends BaseViewHolder {
                 }
             }
         });
-        mcvWorkTime.setOnMonthChangedListener(new OnMonthChangedListener() {
-            @Override
-            public void onMonthChanged(MaterialCalendarView materialCalendarView, CalendarDay calendarDay) {
-                String month = monthStrs[calendarDay.getMonth() - 1];//转换成真实月份
-                tvDateTitle.setText(LunarUtils.getLunar(calendarDay.getYear() + "", calendarDay.getMonth() + "", calendarDay.getDay() + ""));
-            }
-        });
     }
 
     /**

+ 21 - 0
app/src/main/java/com/webrain/dailypay/utils/BaseInformationUtils.java

@@ -60,4 +60,25 @@ public class BaseInformationUtils {
         }.getType());
     }
 
+    /**
+     * 获取结算方式
+     *
+     * @param mContext
+     * @return
+     */
+    public static List<BaseInformationBean> getClearTypeList(Context mContext) {
+        return new Gson().fromJson(JsonDataUtils.getJson(mContext, "clear_type.json"), new TypeToken<List<BaseInformationBean>>() {
+        }.getType());
+    }
+
+    /**
+     * 获取岗位福利
+     *
+     * @param mContext
+     * @return
+     */
+    public static List<BaseInformationBean> getPositionWelfare(Context mContext) {
+        return new Gson().fromJson(JsonDataUtils.getJson(mContext, "position_welfare.json"), new TypeToken<List<BaseInformationBean>>() {
+        }.getType());
+    }
 }

+ 19 - 0
app/src/main/res/layout/item_gridview_position_release_select.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:gravity="center">
+
+    <TextView
+        android:id="@+id/tv_type"
+        android:layout_width="63dp"
+        android:layout_height="25dp"
+        android:background="@drawable/corners_stork_gray_purple_15"
+        android:gravity="center"
+        android:text="@string/hour"
+        android:textColor="@drawable/color_gray_main_purple_tv"
+        android:textSize="@dimen/px33_11sp"
+
+        />
+
+</LinearLayout>

+ 10 - 4
app/src/main/res/layout/view_flipper_position_part_release_two.xml

@@ -373,10 +373,13 @@
                             android:textColor="@color/text_black"
                             android:textSize="@dimen/px33_11sp" />
 
-                        <GridView
+                        <com.webrain.baselibrary.widget.GridViewForScrollView
                             android:id="@+id/gv_welfare"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content" />
+                            android:layout_height="wrap_content"
+                            android:horizontalSpacing="7dp"
+                            android:numColumns="4"
+                            android:verticalSpacing="6dp" />
 
                         <TextView
                             android:layout_width="match_parent"
@@ -387,10 +390,13 @@
                             android:textColor="@color/text_black"
                             android:textSize="@dimen/px33_11sp" />
 
-                        <GridView
+                        <com.webrain.baselibrary.widget.GridViewForScrollView
                             android:id="@+id/gv_payment"
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content" />
+                            android:layout_height="wrap_content"
+                            android:horizontalSpacing="7dp"
+                            android:numColumns="4"
+                            android:verticalSpacing="6dp" />
 
                         <LinearLayout
                             android:layout_width="match_parent"

+ 17 - 0
baselibrary/src/main/java/com/webrain/baselibrary/utils/LunarUtils.java

@@ -230,4 +230,21 @@ public class LunarUtils {
         s += cyclical(getYearCyl()) + "年" + cyclical(getMonCyl()) + "月" + cyclical(getDayCyl()) + "日";
         return s;
     }
+
+    public static String getLunarYear(String year, String month, String day) {
+        Date sDObj;
+        String s;
+        int SY, SM, SD;
+        int sy;
+        SY = Integer.parseInt(year);
+        SM = Integer.parseInt(month);
+        SD = Integer.parseInt(day);
+        sy = (SY - 4) % 12;
+        Calendar cl = Calendar.getInstance();
+        cl.set(SY, SM - 1, SD);
+        sDObj = cl.getTime();
+        //日期
+        Lunar1(sDObj); //农历
+        return cyclical(getYearCyl());
+    }
 }

+ 34 - 0
baselibrary/src/main/java/com/webrain/baselibrary/widget/GridViewForScrollView.java

@@ -0,0 +1,34 @@
+package com.webrain.baselibrary.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.GridView;
+
+public class GridViewForScrollView extends GridView {
+    public GridViewForScrollView(Context context) {
+        super(context);
+    }
+
+    public GridViewForScrollView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public GridViewForScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    /**
+     * 重写onMeasure方法,重新计算高度,达到使GridView适应ScrollView的效果
+     *
+     * @param widthMeasureSpec  宽度测量规则
+     * @param heightMeasureSpec 高度测量规则
+     */
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        //Integer.MAX_VALUE:表示int类型能够表示的最大值,值为2的31次方-1
+        //>>2:右移N位相当于除以2的N的幂
+        //MeasureSpec.AT_MOST:子布局可以根据自己的大小选择任意大小的模式
+        int newHeightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
+        super.onMeasure(widthMeasureSpec, newHeightMeasureSpec);
+    }
+}