From 94e4b1668ffbc3461452cb0d992c854f7f71a490 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 27 四月 2020 14:14:34 +0800
Subject: [PATCH] 完善信号配置;修改主界面
---
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java | 173 +++++++++++++++++++++++----------------------------------
1 files changed, 71 insertions(+), 102 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
index 0b12f1c..9159109 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
@@ -15,6 +15,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
+import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
@@ -27,6 +28,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatSpinner;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
@@ -36,6 +38,7 @@
import com.google.gson.Gson;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -44,11 +47,13 @@
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.bean.SignalConfigBean;
import safeluck.drive.evaluation.bean.SignalConfigRemote;
+import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.Utils;
@@ -64,23 +69,9 @@
private static final int INDEX = 1;
private static final int HIGHLEVEL = 2;
private static final int MAINBOARD = 3;
- private Handler handler = new Handler(){
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- int id = msg.arg1;
- int sig = msg.arg2;
- switch (msg.what){
- case INDEX:
- signalConfigViewModel.updateindex(sig,id);
- break;
- case HIGHLEVEL:
- break;
- case MAINBOARD:
- break;
- }
- }
- };
+
+
+ private String[] arr_strs;
private List<SignalConfigBean> signalConfiglist =new ArrayList<>();
@@ -102,6 +93,7 @@
}
private void initView(View view) {
+ arr_strs = getResources().getStringArray(R.array.signals_name);
mToobar = view.findViewById(R.id.toolbar);
linearLayout = view.findViewById(R.id.ll_container);
mToobar.setTitle("淇″彿閰嶇疆");
@@ -126,10 +118,13 @@
SingalConfig singalConfig = singalConfigs.get(i);
i++;
- SingalConfig singalConfig1 = singalConfigs.get(i);
- signalConfiglist .add(new SignalConfigBean(singalConfig.getSignalName(),singalConfig1.getSignalName(),singalConfig.getHighLevel()==1?true:false,singalConfig.getMainBoard()==1?true:false,
- singalConfig1.getHighLevel()==1?true:false,singalConfig1.getMainBoard()==1?true:false,singalConfig.getIndex(),singalConfig1.getIndex()));
- mySignalsAdapter.notifyDataSetChanged();
+ if (i<singalConfigs.size()){
+ SingalConfig singalConfig1 = singalConfigs.get(i);
+ signalConfiglist .add(new SignalConfigBean(singalConfig.getSignalName(),singalConfig1.getSignalName(),singalConfig.getHighLevel()==1?true:false,singalConfig.getMainBoard()==1?true:false,
+ singalConfig1.getHighLevel()==1?true:false,singalConfig1.getMainBoard()==1?true:false,singalConfig.getIndex(),singalConfig1.getIndex()));
+ mySignalsAdapter.notifyDataSetChanged();
+ }
+
}
});
@@ -139,7 +134,6 @@
}
-private Gson gson = new Gson();
@@ -202,18 +196,37 @@
viewHolder.checkBox1.setTag(signalConfiglist.get(position));
viewHolder.checkBox3.setTag(signalConfiglist.get(position));
}
- viewHolder.editText1.setTag(position*2);
- viewHolder.editText2.setTag((position*2+1));
+ viewHolder.editText1.setTag(position*2+1);
+ viewHolder.editText2.setTag((2*(1+position)));
+
+
final SignalConfigBean signalConfigItem = getItem(position);
- viewHolder.textView1.setText(signalConfigItem.getSignal_name_first());
- viewHolder.textView2.setText(signalConfigItem.getSignal_name_second());
+ viewHolder.textView1.setText(String.valueOf(position*2+1));
+ viewHolder.textView2.setText(String.valueOf(2*(1+position)));
- viewHolder.editText1.setText(String.valueOf(signalConfigItem.getPort_one()));
- viewHolder.editText2.setText(String.valueOf(signalConfigItem.getPort_two()));
+ CThreadPoolExecutor.runInBackground(new Runnable() {
+ @Override
+ public void run() {
+ String signName1=WorkRoomDataBase.getWorkRoomDataBase(getActivity()).getSignalConfigDao().getSignalName(position*2+1);
+ String s2=WorkRoomDataBase.getWorkRoomDataBase(getActivity()).getSignalConfigDao().getSignalName((position+1)*2);
+
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+
+ viewHolder.editText1.setSelection(getSigal2Pos(signName1));
+ viewHolder.editText2.setSelection(getSigal2Pos(s2));
+ }
+ });
+
+ }
+ });
+
+
viewHolder.checkBox1.setChecked(signalConfigItem.isOne());
viewHolder.checkBox3.setChecked(signalConfigItem.isThree());
@@ -224,8 +237,8 @@
class ViewHolder{
CheckBox checkBox1;
CheckBox checkBox3;
- EditText editText1;
- EditText editText2;
+ AppCompatSpinner editText1;
+ AppCompatSpinner editText2;
TextView textView1;
TextView textView2;
@@ -236,74 +249,37 @@
editText1 = convertView.findViewById(R.id.et_signal1_port);
editText2 = convertView.findViewById(R.id.et_signal2_port);
- editText1.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
- editText2.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
- editText1.setImeOptions(EditorInfo.IME_ACTION_DONE);
- editText2.setImeOptions(EditorInfo.IME_ACTION_DONE);
- editText1.setSingleLine();
- editText2.setSingleLine();
- editText1.addTextChangedListener(new TextWatcher() {
+ editText1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
-
- }
-
- @Override
- public void afterTextChanged(Editable s) {
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int pos = (int) editText1.getTag();
- String str = s.toString();
- if (!TextUtils.isEmpty(str)&& Utils.isDigital(str)){
- int a = Integer.parseInt(str);
- if (a== list.get(pos).getGpio_num()){
+ Log.i(TAG,String.format("Spinner1 pos=%d,position=%d瀵瑰簲鐨勪俊鍙峰悕绉�=%s",pos,position
+ ,arr_strs[position]));
+ signalConfigViewModel.updateindex(pos,position);
+ }
- }else{
- handler.removeMessages(INDEX);
- Message message = Message.obtain();
- message.what = INDEX;
- message.arg1 = pos;
- message.arg2 = a;
- handler.sendMessageDelayed(message,1500);
- }
- }
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+
}
});
- editText2.addTextChangedListener(new TextWatcher() {
+ editText2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
-
- @Override
- public void afterTextChanged(Editable s) {
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int pos = (int) editText2.getTag();
- String str = s.toString();
- if (!TextUtils.isEmpty(str)&& Utils.isDigital(str)){
- int a = Integer.parseInt(str);
- if (a== list.get(pos).getGpio_num()){
+ Log.i(TAG,String.format("Spinner2 pos=%d,position=%d瀵瑰簲鐨勪俊鍙峰悕绉�=%s",pos,position
+ ,arr_strs[position]));
+ signalConfigViewModel.updateindex(pos,position);
+ }
- }else{
- handler.removeMessages(INDEX);
- Message message = Message.obtain();
- message.what = INDEX;
- message.arg1 = pos;
- message.arg2 = a;
- handler.sendMessageDelayed(message,1500);
- }
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
- }
}
});
+
@@ -313,23 +289,16 @@
}
}
- @Override
- public void onResume() {
- super.onResume();
- Log.i(TAG, "onResume: ");
-
+ private int getSigal2Pos(String signalConfigItem) {
+ for (int i = 0; i < arr_strs.length; i++) {
+ if (arr_strs[i].equals(signalConfigItem)){
+// Log.i(TAG,"淇″彿鍚嶇О="+signalConfigItem+" i="+i);
+ return i;
+ }else{
+ continue;
+ }
+ }
+ return -1;
}
- @Override
- public void onStop() {
- super.onStop();
- Log.i(TAG, "onStop: ");
-
- }
-
- @Override
- public void onPause() {
- super.onPause();
- Log.i(TAG, "onPause: ");
- }
}
--
Gitblit v1.8.0