diff --git a/app/src/main/java/com/qhclh/ytzh/bean/DailyDetailsBean.java b/app/src/main/java/com/qhclh/ytzh/bean/DailyDetailsBean.java index c04b044..e82f81d 100644 --- a/app/src/main/java/com/qhclh/ytzh/bean/DailyDetailsBean.java +++ b/app/src/main/java/com/qhclh/ytzh/bean/DailyDetailsBean.java @@ -100,4 +100,18 @@ public class DailyDetailsBean { public void setWeight(BigDecimal weight) { Weight = weight; } + + @Override + public String toString() { + return "DailyDetailsBean{" + + "House_ID=" + House_ID + + ", House_Name='" + House_Name + '\'' + + ", Days=" + Days + + ", DieNumber=" + DieNumber + + ", Obsolete=" + Obsolete + + ", WaterIntake=" + WaterIntake + + ", Weight=" + Weight + + ", mingxi='" + mingxi + '\'' + + '}'; + } } diff --git a/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/DailyDetailsAdapter.java b/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/DailyDetailsAdapter.java index cd97069..3d302de 100644 --- a/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/DailyDetailsAdapter.java +++ b/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/DailyDetailsAdapter.java @@ -1,7 +1,10 @@ package com.qhclh.ytzh.work.productiondailyw; import android.content.Context; +import android.text.Editable; +import android.text.TextWatcher; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; @@ -11,6 +14,7 @@ import android.widget.TextView; import com.qhclh.ytzh.R; import com.qhclh.ytzh.bean.DailyDetailsBean; +import java.math.BigDecimal; import java.util.List; /** @@ -47,8 +51,8 @@ public class DailyDetailsAdapter extends BaseAdapter { public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; DailyDetailsBean message = list.get(i); - if (view == null){ - view = layoutInflater.inflate(R.layout.item_dailydetail,viewGroup,false); + if (view == null) { + view = layoutInflater.inflate(R.layout.item_dailydetail, viewGroup, false); viewHolder = new ViewHolder(); viewHolder.dailyd_title = view.findViewById(R.id.dailyd_title); viewHolder.dailyd_buildinghome = view.findViewById(R.id.dailyd_buildinghome); @@ -59,22 +63,161 @@ public class DailyDetailsAdapter extends BaseAdapter { viewHolder.dailyd_weight = view.findViewById(R.id.dailyd_weight); view.setTag(viewHolder); - }else { + } else { viewHolder = (ViewHolder) view.getTag(); } - viewHolder.dailyd_title.setText(message.getMingxi()+""); - viewHolder.dailyd_buildinghome.setText(message.getHouse_Name()+""); - viewHolder.dailyd_dayage.setText(message.getDays()+""); - viewHolder.dailyd_death.setText(message.getDieNumber()+""); - viewHolder.dailyd_eliminate.setText(message.getObsolete()+""); - viewHolder.dailyd_water.setText(message.getWaterIntake()+""); - viewHolder.dailyd_weight.setText(message.getWeight()+""); + final ViewHolder finalViewHolder = viewHolder; + + viewHolder.dailyd_dayage.setTag(i); + // 设置触摸事件 + viewHolder.dailyd_dayage.setOnTouchListener(new OnEditTextTouched(i)); + viewHolder.dailyd_dayage.clearFocus(); + if (i == mCurrentTouchedIndex) { + // 如果该项中的EditText是要获取焦点的 + viewHolder.dailyd_dayage.requestFocus(); + } + viewHolder.dailyd_dayage.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + int temPosition = (int) finalViewHolder.dailyd_dayage.getTag(); + try { + list.get(temPosition).setDays(Integer.parseInt(editable.toString())); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + }); + + viewHolder.dailyd_death.setTag(i); + // 设置触摸事件 + viewHolder.dailyd_death.setOnTouchListener(new OnEditTextTouched(i)); + viewHolder.dailyd_death.clearFocus(); + if (i == mCurrentTouchedIndex) { + // 如果该项中的EditText是要获取焦点的 + viewHolder.dailyd_death.requestFocus(); + } + viewHolder.dailyd_death.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + int temPosition = (int) finalViewHolder.dailyd_death.getTag(); + try { + list.get(temPosition).setDieNumber(Integer.parseInt(editable.toString())); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + }); + viewHolder.dailyd_eliminate.setTag(i); + // 设置触摸事件 + viewHolder.dailyd_eliminate.setOnTouchListener(new OnEditTextTouched(i)); + viewHolder.dailyd_eliminate.clearFocus(); + if (i == mCurrentTouchedIndex) { + // 如果该项中的EditText是要获取焦点的 + viewHolder.dailyd_eliminate.requestFocus(); + } + viewHolder.dailyd_eliminate.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + int temPosition = (int) finalViewHolder.dailyd_eliminate.getTag(); + try { + list.get(temPosition).setObsolete(Integer.parseInt(editable.toString())); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + }); + viewHolder.dailyd_water.setTag(i); + // 设置触摸事件 + viewHolder.dailyd_water.setOnTouchListener(new OnEditTextTouched(i)); + viewHolder.dailyd_water.clearFocus(); + if (i == mCurrentTouchedIndex) { + // 如果该项中的EditText是要获取焦点的 + viewHolder.dailyd_water.requestFocus(); + } + viewHolder.dailyd_water.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + int temPosition = (int) finalViewHolder.dailyd_water.getTag(); + try { + list.get(temPosition).setWaterIntake(new BigDecimal(editable.toString())); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + }); + viewHolder.dailyd_weight.setTag(i); + // 设置触摸事件 + viewHolder.dailyd_weight.setOnTouchListener(new OnEditTextTouched(i)); + viewHolder.dailyd_weight.clearFocus(); + if (i == mCurrentTouchedIndex) { + // 如果该项中的EditText是要获取焦点的 + viewHolder.dailyd_weight.requestFocus(); + } + viewHolder.dailyd_weight.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + int temPosition = (int) finalViewHolder.dailyd_weight.getTag(); + try { + list.get(temPosition).setWeight(new BigDecimal(editable.toString())); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } + }); + + viewHolder.dailyd_title.setText(message.getMingxi() + ""); + viewHolder.dailyd_buildinghome.setText(message.getHouse_Name() + ""); + viewHolder.dailyd_dayage.setText(message.getDays() + ""); + viewHolder.dailyd_death.setText(message.getDieNumber() + ""); + viewHolder.dailyd_eliminate.setText(message.getObsolete() + ""); + viewHolder.dailyd_water.setText(message.getWaterIntake() + ""); + viewHolder.dailyd_weight.setText(message.getWeight() + ""); return view; } - private class ViewHolder{ + private class ViewHolder { private TextView dailyd_title; private TextView dailyd_buildinghome; private EditText dailyd_dayage; @@ -83,4 +226,24 @@ public class DailyDetailsAdapter extends BaseAdapter { private EditText dailyd_water; private EditText dailyd_weight; } + + // 定义变量,记录刷新前获得焦点的EditText所在的位置 + private int mCurrentTouchedIndex = -1; + + // ListView中EditText的触摸事件 以防虚拟键盘弹出取消 getview 重新执行后输入框失去焦点 + private class OnEditTextTouched implements View.OnTouchListener { + private int position; + + public OnEditTextTouched(int position) { + this.position = position; + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_UP) { + mCurrentTouchedIndex = position; + } + return false; + } + } } diff --git a/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/WdailyActivity.java b/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/WdailyActivity.java index 37a0ce5..7686abf 100644 --- a/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/WdailyActivity.java +++ b/app/src/main/java/com/qhclh/ytzh/work/productiondailyw/WdailyActivity.java @@ -83,6 +83,7 @@ public class WdailyActivity extends BaseActivity { public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.commit_dailys: +// System.out.println("aaa++++"+list.toString()); break; } return super.onOptionsItemSelected(item);