lizhanwei
2020-04-26 fc4931ed9dc64cb26afe46520335f3f0c314dec1
自定义checkbox
4个文件已修改
1个文件已添加
183 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/MainActivity.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_signal_conf_item.xml 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_signal_config.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() {
app/src/main/java/safeluck/drive/evaluation/customview/MyCustomCheckbox.kt
New file
@@ -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())
    }
}
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);
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>
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