From fc4931ed9dc64cb26afe46520335f3f0c314dec1 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期日, 26 四月 2020 09:11:25 +0800 Subject: [PATCH] 自定义checkbox --- app/src/main/res/layout/layout_signal_config.xml | 31 ++----- app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 25 ------ app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt | 40 ++++++++++ app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java | 34 ------- app/src/main/res/layout/layout_signal_conf_item.xml | 53 ++++++------- 5 files changed, 77 insertions(+), 106 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 1593fe3..9cf5b06 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -271,32 +271,7 @@ CEventCenter.onBindEvent(false, icEventListener, Constant.BIND_CONNECT_RTK_TOPIC); Log.i(TAG, "onDestroy: "); } - private void sendSignalConfigsToRemote() { - if (signalConfiglist.size()>0){ - new AsyncTask<Void, Void, List<Integer>>( - ) { - @Override - protected List<Integer> doInBackground(Void... voids) { - return signalConfigViewModel.getAllIndexs(); - } - - @Override - protected void onPostExecute(List<Integer> indexs) { - if (listContainsSameValue(indexs)){ - Log.i(TAG, "sendSignalConfigsToRemote: 鏈夌浉鍚岀殑index锛屼笉鑳藉彂閫�"+gson.toJson(signalConfiglist)); - Toast.makeText(getApplicationContext(), "涓嶈兘鏈夌浉鍚岀殑鐗╃悊鎵�寮曪紒", Toast.LENGTH_SHORT).show(); - }else{ - AYSdk.getInstance().sendCmd(Constant.SEND_CONFIG_SIGNAL,gson.toJson(signalConfiglist)); - } - } - }.execute(); - - } - - - - } @Override protected void onResume() { diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt b/app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt new file mode 100644 index 0000000..1288ef8 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt @@ -0,0 +1,40 @@ +package safeluck.drive.evaluation.customview + +import android.content.Context +import android.graphics.Canvas +import android.util.AttributeSet +import android.view.Gravity +import android.widget.CheckBox + +/** + * + * @ProjectName: DriveJudge + * @Package: safeluck.drive.evaluation.customview + * @ClassName: MyCustomCheckbox + * @Description: java绫讳綔鐢ㄦ弿杩� + * @Author: 鏉庡崰浼� + * @CreateDate: 2020-04-24 13:17 + * @UpdateUser: 鏇存柊鑰� + * @UpdateDate: 2020-04-24 13:17 + * @UpdateRemark: 鏇存柊璇存槑 + * @Version: 1.0 + */ + +class MyCustomCheckbox :CheckBox{ + constructor(context:Context):this(context,null) + constructor(context:Context,attrs:AttributeSet?):this(context,attrs,0) + constructor(context:Context,attrs:AttributeSet?,defStyleAttr:Int): super(context,attrs,defStyleAttr) + + override fun onDraw(canvas: Canvas?) { + super.onDraw(canvas) + var drawables = compoundDrawables + var drawable = drawables[0] + var gravity = gravity + var left = 0 + if (Gravity.CENTER== gravity){ + left = (((getWidth() - drawable.getIntrinsicWidth() - getPaint().measureText(getText().toString())) + / 2).toInt()) + } + drawable.setBounds(left, 0, left + drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()) + } +} \ No newline at end of file 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 5194ddc..0b12f1c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java @@ -105,10 +105,7 @@ mToobar = view.findViewById(R.id.toolbar); linearLayout = view.findViewById(R.id.ll_container); mToobar.setTitle("淇″彿閰嶇疆"); - listView =new ListView(_mActivity); - ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - listView.setLayoutParams(layoutParams); - linearLayout.addView(listView); + listView =view.findViewById(R.id.lv_signalconf); listView.setDivider(null); final MySignalsAdapter mySignalsAdapter = new MySignalsAdapter(_mActivity); @@ -190,39 +187,20 @@ } }); - viewHolder.checkBox4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox4.getTag(); - signalConfigBean.setFour(isChecked); - - } - });viewHolder.checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox2.getTag(); - signalConfigBean.setTwo(isChecked); - } - });viewHolder.checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + viewHolder.checkBox1.setOnCheckedChangeListener((buttonView,isChecked)-> { SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox1.getTag(); signalConfigBean.setOne(isChecked); signalConfigViewModel.updateHightlevel(isChecked?1:0,position*2); - } + }); convertView.setTag(viewHolder); viewHolder.checkBox1.setTag(signalConfiglist.get(position)); - viewHolder.checkBox2.setTag(signalConfiglist.get(position)); viewHolder.checkBox3.setTag(signalConfiglist.get(position)); - viewHolder.checkBox4.setTag(signalConfiglist.get(position)); }else { viewHolder = (ViewHolder) convertView.getTag(); viewHolder.checkBox1.setTag(signalConfiglist.get(position)); - viewHolder.checkBox2.setTag(signalConfiglist.get(position)); viewHolder.checkBox3.setTag(signalConfiglist.get(position)); - viewHolder.checkBox4.setTag(signalConfiglist.get(position)); } viewHolder.editText1.setTag(position*2); viewHolder.editText2.setTag((position*2+1)); @@ -238,18 +216,14 @@ viewHolder.editText2.setText(String.valueOf(signalConfigItem.getPort_two())); viewHolder.checkBox1.setChecked(signalConfigItem.isOne()); - viewHolder.checkBox2.setChecked(signalConfigItem.isTwo()); viewHolder.checkBox3.setChecked(signalConfigItem.isThree()); - viewHolder.checkBox4.setChecked(signalConfigItem.isFour()); return convertView; } class ViewHolder{ CheckBox checkBox1; - CheckBox checkBox2; CheckBox checkBox3; - CheckBox checkBox4; EditText editText1; EditText editText2; TextView textView1; @@ -258,9 +232,7 @@ public ViewHolder(final View convertView) { checkBox1 = convertView.findViewById(R.id.signal_check_1); - checkBox2 = convertView.findViewById(R.id.signal_check_2); checkBox3 = convertView.findViewById(R.id.signal_check_3); - checkBox4 = convertView.findViewById(R.id.signal_check_4); editText1 = convertView.findViewById(R.id.et_signal1_port); editText2 = convertView.findViewById(R.id.et_signal2_port); diff --git a/app/src/main/res/layout/layout_signal_conf_item.xml b/app/src/main/res/layout/layout_signal_conf_item.xml index 8744c98..3ee743f 100644 --- a/app/src/main/res/layout/layout_signal_conf_item.xml +++ b/app/src/main/res/layout/layout_signal_conf_item.xml @@ -1,43 +1,40 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:gravity="center" - - android:layout_height="100dp"> + android:paddingBottom="8dp" + android:gravity="center_vertical" + android:layout_height="50dp"> <TextView android:layout_width="0dp" android:layout_weight="1" android:id="@+id/tv_signal_1" android:textColor="@android:color/white" - android:layout_height="wrap_content" + android:layout_height="32dp" + android:textAlignment="center" + android:gravity="center_vertical" android:textSize="@dimen/network_train_textsize22px" - android:gravity="center" android:text="鍠囧彮"/> <EditText android:layout_width="0dp" - android:textColor="@android:color/white" android:layout_weight="1" + android:textColor="@android:color/white" android:gravity="center" - android:layout_height="wrap_content" + android:layout_height="32dp" android:id="@+id/et_signal1_port" android:background="@drawable/tv_des_bg" android:textSize="@dimen/network_train_textsize22px" android:text="0"/> - <CheckBox - android:layout_width="0dp" - android:layout_weight="1" - android:layout_gravity="center" - android:id="@+id/signal_check_1" - - android:layout_height="wrap_content" - android:checked="true"/> - <CheckBox + <safeluck.drive.evaluation.customview.MyCustomCheckbox android:layout_width="0dp" android:layout_weight="1" android:gravity="center" - android:id="@+id/signal_check_2" - android:layout_height="wrap_content" + android:button="@null" + android:layout_gravity="center_vertical" + android:drawableStart="@drawable/ic_check" + android:id="@+id/signal_check_1" + android:layout_height="@dimen/ui_margin_30dp" android:checked="true"/> + <TextView android:layout_width="0dp" android:layout_weight="1" @@ -45,7 +42,7 @@ android:textSize="@dimen/network_train_textsize22px" android:gravity="center" android:id="@+id/tv_signal_2" - android:layout_height="wrap_content" + android:layout_height="32dp" android:text="鍠囧彮"/> <EditText android:layout_width="0dp" @@ -55,18 +52,16 @@ android:textSize="@dimen/network_train_textsize22px" android:background="@drawable/tv_des_bg" android:id="@+id/et_signal2_port" - android:layout_height="wrap_content" + android:layout_height="32dp" android:text="0"/> - <CheckBox - android:layout_width="0dp" + <safeluck.drive.evaluation.customview.MyCustomCheckbox + android:layout_width="wrap_content" android:layout_weight="1" + android:button="@null" + android:drawableStart="@drawable/ic_check" + android:gravity="center" android:id="@+id/signal_check_3" - android:layout_height="wrap_content" + android:layout_height="@dimen/ui_margin_30dp" android:checked="true"/> - <CheckBox - android:layout_width="0dp" - android:layout_weight="1" - android:id="@+id/signal_check_4" - android:layout_height="wrap_content" - android:checked="true"/> + </LinearLayout> diff --git a/app/src/main/res/layout/layout_signal_config.xml b/app/src/main/res/layout/layout_signal_config.xml index be5a07b..b790120 100644 --- a/app/src/main/res/layout/layout_signal_config.xml +++ b/app/src/main/res/layout/layout_signal_config.xml @@ -6,10 +6,9 @@ android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/ll_container" - android:layout_marginLeft="@dimen/ui_margin_10dp" - android:layout_marginRight="@dimen/ui_margin_10dp" + android:layout_marginBottom="@dimen/ui_margin_25dp" - android:background="@drawable/stu_score_bg" + > <include layout="@layout/toolbar"/> <LinearLayout @@ -26,7 +25,7 @@ android:gravity="center" android:textSize="15sp" android:textColor="#ff888995" - android:text="淇″彿鍚嶇О"/> + android:text="鐗╃悊閫氶亾"/> <TextView android:layout_width="0dp" android:layout_weight="1" @@ -34,7 +33,7 @@ android:textColor="#ff888995" android:gravity="center" android:layout_height="wrap_content" - android:text="鐗╃悊绱㈠紩"/> + android:text="淇″彿鍚嶇О"/> <TextView android:layout_width="0dp" android:layout_weight="1" @@ -44,14 +43,7 @@ android:textColor="#ff888995" android:text="楂樼數骞虫湁鏁�"/> - <TextView - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="wrap_content" - android:gravity="center" - android:textSize="15sp" - android:textColor="#ff888995" - android:text="涓绘澘鏈夋晥"/> + <TextView android:layout_width="0dp" android:layout_weight="1" @@ -77,16 +69,13 @@ android:gravity="center" android:text="楂樼數骞虫湁鏁�"/> - <TextView - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="wrap_content" - android:textSize="15sp" - android:textColor="#ff888995" - android:gravity="center" - android:text="涓绘澘鏈夋晥"/> + </LinearLayout> + <ListView + android:layout_width="match_parent" + android:id="@+id/lv_signalconf" + android:layout_height="match_parent"/> </LinearLayout> <FrameLayout -- Gitblit v1.8.0