From a0ab42c05721aed1ef94a788f713d74a97a9717a Mon Sep 17 00:00:00 2001 From: lh <1209405678@qq.com> Date: Tue, 12 Dec 2017 10:55:53 +0800 Subject: [PATCH] zzz --- app/src/main/AndroidManifest.xml | 3 + .../java/com/qhclh/ytzh/bean/ReportBean.java | 72 +++++++++ .../ytzh/ui/LinkedHorizontalScrollView.java | 42 +++++ .../ytzh/ui/NoScrollHorizontalScrollView.java | 40 +++++ .../tablepoultry/LvBuildhousenaneAdapter.java | 70 +++++++++ .../tablepoultry/LvReportInfoAdapter.java | 89 +++++++++++ .../work/tablepoultry/ReportActivity.java | 147 ++++++++++++++++++ .../tablepoultry/changle/ChangleFragment.java | 3 + app/src/main/res/layout/act_report.xml | 122 +++++++++++++++ .../res/layout/item_lv_buildhouse_info.xml | 59 +++++++ .../res/layout/item_lv_buildhouse_name.xml | 19 +++ app/src/main/res/values/strings.xml | 1 + 12 files changed, 667 insertions(+) create mode 100644 app/src/main/java/com/qhclh/ytzh/bean/ReportBean.java create mode 100644 app/src/main/java/com/qhclh/ytzh/ui/LinkedHorizontalScrollView.java create mode 100644 app/src/main/java/com/qhclh/ytzh/ui/NoScrollHorizontalScrollView.java create mode 100644 app/src/main/java/com/qhclh/ytzh/work/tablepoultry/LvBuildhousenaneAdapter.java create mode 100644 app/src/main/java/com/qhclh/ytzh/work/tablepoultry/LvReportInfoAdapter.java create mode 100644 app/src/main/java/com/qhclh/ytzh/work/tablepoultry/ReportActivity.java create mode 100644 app/src/main/res/layout/act_report.xml create mode 100644 app/src/main/res/layout/item_lv_buildhouse_info.xml create mode 100644 app/src/main/res/layout/item_lv_buildhouse_name.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cf11e24..1b4c98a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -109,6 +109,9 @@ + list; + + public LvBuildhousenaneAdapter(Context context, List list) { + this.context = context; + this.list = list; + } + + @Override + public int getCount() { + return list.size(); + } + + @Override + public Object getItem(int position) { + return list.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + if (convertView == null) { + holder = new ViewHolder(); + convertView = LayoutInflater.from(context).inflate(R.layout.item_lv_buildhouse_name, null); + holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name); + holder.ll_buildhousename = convertView.findViewById(R.id.ll_buildhousename); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + holder.tv_name.setText(list.get(position)); + if (position%2==0){ + holder.ll_buildhousename.setBackgroundColor(context.getResources().getColor(R.color.greyf4f4f4)); + }else { + holder.ll_buildhousename.setBackgroundColor(context.getResources().getColor(R.color.white)); + } + return convertView; + } + + class ViewHolder { + TextView tv_name; + LinearLayout ll_buildhousename; + } +} diff --git a/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/LvReportInfoAdapter.java b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/LvReportInfoAdapter.java new file mode 100644 index 0000000..8666dda --- /dev/null +++ b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/LvReportInfoAdapter.java @@ -0,0 +1,89 @@ +package com.qhclh.ytzh.work.tablepoultry; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.qhclh.ytzh.R; +import com.qhclh.ytzh.bean.ReportBean; + +import java.util.List; + +/** + * Created by 青花瓷 on 2017/6/29. + */ +///< 利润分析中的适配器 +public class LvReportInfoAdapter extends BaseAdapter { + private Context context; + private List list; + + public LvReportInfoAdapter(Context context, List list) { + this.context = context; + this.list = list; + } + + @Override + public int getCount() { + return list.size(); + } + + @Override + public Object getItem(int position) { + return list.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + ReportBean message = list.get(position); + if (convertView == null) { + holder = new ViewHolder(); + convertView = LayoutInflater.from(context).inflate(R.layout.item_lv_buildhouse_info, null); + holder.item_dayage = (TextView) convertView.findViewById(R.id.item_dayage); + holder.item_death = (TextView) convertView.findViewById(R.id.item_death); + holder.item_eliminatee = (TextView) convertView.findViewById(R.id.item_eliminatee); + holder.item_water = (TextView) convertView.findViewById(R.id.item_water); + holder.item_weight = (TextView) convertView.findViewById(R.id.item_weight); + holder.ll_buildhouseinfo = convertView.findViewById(R.id.ll_buildhouseinfo); + + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + ///< 自己看拼音吧 我也不想看了 + holder.item_dayage.setText(message.getItem_dayage()); + holder.item_death.setText(message.getItem_death()); + holder.item_eliminatee.setText(message.getItem_eliminatee()); + holder.item_water.setText(message.getItem_water()); + holder.item_weight.setText(message.getItem_weight()); + + if (position%2==0){ + holder.ll_buildhouseinfo.setBackgroundColor(context.getResources().getColor(R.color.greyf4f4f4)); + }else { + holder.ll_buildhouseinfo.setBackgroundColor(context.getResources().getColor(R.color.white)); + } + + return convertView; + } + private class ViewHolder { + TextView item_dayage; + TextView item_death; + TextView item_eliminatee; + TextView item_water; + TextView item_weight; + LinearLayout ll_buildhouseinfo; + } +} + + diff --git a/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/ReportActivity.java b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/ReportActivity.java new file mode 100644 index 0000000..668b75e --- /dev/null +++ b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/ReportActivity.java @@ -0,0 +1,147 @@ +package com.qhclh.ytzh.work.tablepoultry; + +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.AbsListView; +import android.widget.HorizontalScrollView; +import android.widget.ListView; + +import com.qhclh.ytzh.R; +import com.qhclh.ytzh.base.BaseActivity; +import com.qhclh.ytzh.bean.ReportBean; +import com.qhclh.ytzh.ui.LinkedHorizontalScrollView; +import com.qhclh.ytzh.ui.NoScrollHorizontalScrollView; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +/** + * Created by 青花瓷 on 2017/12/12. + */ + +public class ReportActivity extends BaseActivity { + @BindView(R.id.toolbar) + Toolbar mToolbar; + @BindView(R.id.sv_title) + NoScrollHorizontalScrollView sv_title;//不可滑动的顶部左侧的ScrollView + @BindView(R.id.sv_report_detail) + LinkedHorizontalScrollView sv_report_detail;//底部左侧的ScrollView + @BindView(R.id.lv_buildhousename) + ListView lv_buildhousename;//底部左侧的ListView + @BindView(R.id.lv_report_info) + ListView lv_report_info;//底部右侧的ListView + + private boolean isLeftListEnabled = false; + private boolean isRightListEnabled = false; + private LvBuildhousenaneAdapter lvBuildhousenaneAdapter; + private LvReportInfoAdapter lvReportInfoAdapter; + + private List buildhouseList; + private List reportBeanList; + @Override + protected int setLayoutId() { + return R.layout.act_report; + } + + @Override + protected void initView() { + initToolbar(mToolbar, "报表指数", new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + + combination(lv_buildhousename, lv_report_info, sv_title, sv_report_detail); + } + + @Override + protected void initData() { + buildhouseList = new ArrayList<>(); + reportBeanList = new ArrayList<>(); + + for (int i=0;i<10;i++){ + buildhouseList.add("栋舍"+i); + reportBeanList.add(new ReportBean("1"+i,"2"+i,"3"+i,"4"+i,"5"+i)); + } + + lvBuildhousenaneAdapter = new LvBuildhousenaneAdapter(this,buildhouseList); + lvReportInfoAdapter = new LvReportInfoAdapter(this,reportBeanList); + + lv_buildhousename.setAdapter(lvBuildhousenaneAdapter); + lv_report_info.setAdapter(lvReportInfoAdapter); + + } + + @Override + protected void initOper() { + + } + + + private void combination(final ListView lvName, final ListView lvDetail, final HorizontalScrollView title, LinkedHorizontalScrollView content) { + /** + * 左右滑动同步 + */ + content.setMyScrollChangeListener(new LinkedHorizontalScrollView.LinkScrollChangeListener() { + @Override + public void onscroll(LinkedHorizontalScrollView view, int x, int y, int oldx, int oldy) { + title.scrollTo(x, y); + } + }); + + /** + * 上下滑动同步 + */ + // 禁止快速滑动 + lvName.setOverScrollMode(ListView.OVER_SCROLL_NEVER); + lvDetail.setOverScrollMode(ListView.OVER_SCROLL_NEVER); + //左侧ListView滚动时,控制右侧ListView滚动 + lvName.setOnScrollListener(new AbsListView.OnScrollListener() { + + @Override + public void onScrollStateChanged(AbsListView view, int scrollState) { + //这两个enable标志位是为了避免死循环 + if (scrollState == SCROLL_STATE_TOUCH_SCROLL) { + isRightListEnabled = false; + isLeftListEnabled = true; + } else if (scrollState == SCROLL_STATE_IDLE) { + isRightListEnabled = true; + } + } + + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, + int totalItemCount) { + View child = view.getChildAt(0); + if (child != null && isLeftListEnabled) { + lvDetail.setSelectionFromTop(firstVisibleItem, child.getTop()); + } + } + }); + + //右侧ListView滚动时,控制左侧ListView滚动 + lvDetail.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScrollStateChanged(AbsListView view, int scrollState) { + if (scrollState == SCROLL_STATE_TOUCH_SCROLL) { + isLeftListEnabled = false; + isRightListEnabled = true; + } else if (scrollState == SCROLL_STATE_IDLE) { + isLeftListEnabled = true; + } + } + + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, + int totalItemCount) { + View c = view.getChildAt(0); + if (c != null && isRightListEnabled) { + lvName.setSelectionFromTop(firstVisibleItem, c.getTop()); + } + } + }); + } +} diff --git a/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/changle/ChangleFragment.java b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/changle/ChangleFragment.java index e14a0cc..620b0b6 100644 --- a/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/changle/ChangleFragment.java +++ b/app/src/main/java/com/qhclh/ytzh/work/tablepoultry/changle/ChangleFragment.java @@ -1,5 +1,6 @@ package com.qhclh.ytzh.work.tablepoultry.changle; +import android.content.Intent; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; @@ -7,6 +8,7 @@ import android.widget.ListView; import com.qhclh.ytzh.R; import com.qhclh.ytzh.base.BaseFragment; import com.qhclh.ytzh.bean.TablePBean; +import com.qhclh.ytzh.work.tablepoultry.ReportActivity; import com.qhclh.ytzh.work.tablepoultry.XFactryAdapter; import java.util.ArrayList; @@ -51,6 +53,7 @@ public class ChangleFragment extends BaseFragment { @Override public void onItemClick(AdapterView adapterView, View view, int i, long l) { System.out.println("aaa+++++"+l); + startActivity(new Intent(getActivity(), ReportActivity.class)); } }); } diff --git a/app/src/main/res/layout/act_report.xml b/app/src/main/res/layout/act_report.xml new file mode 100644 index 0000000..b93ecbe --- /dev/null +++ b/app/src/main/res/layout/act_report.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_lv_buildhouse_info.xml b/app/src/main/res/layout/item_lv_buildhouse_info.xml new file mode 100644 index 0000000..59b8c33 --- /dev/null +++ b/app/src/main/res/layout/item_lv_buildhouse_info.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_lv_buildhouse_name.xml b/app/src/main/res/layout/item_lv_buildhouse_name.xml new file mode 100644 index 0000000..10290ec --- /dev/null +++ b/app/src/main/res/layout/item_lv_buildhouse_name.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4ca288d..249b58f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -74,6 +74,7 @@ 淘汰: 淘汰 饮水: + 饮水 请选择 出厂时间: 到厂时间: