zuoxiao
2024-03-28 7b80692e038ec9b1f06fbfdc61498c6ff3f97d71
修改卡结构
5个文件已修改
3个文件已添加
184 ■■■■■ 已修改文件
app/src/main/AndroidManifest.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_region.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -117,6 +117,7 @@
        <activity android:name="com.dayu.rechargeqh.activity.ReplacementActivity" />
        <activity android:name="com.dayu.rechargeqh.activity.RechargeDetail" />
        <activity android:name="com.dayu.rechargeqh.activity.PasswordCardActivity" />
        <activity android:name="com.dayu.rechargeqh.activity.RegionActivity"/>
        <meta-data
app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java
@@ -65,5 +65,12 @@
                startActivity(intent);
            }
        });
        binding.parameterRegion.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(ParameterActivity.this, RegionActivity.class);
                startActivity(intent);
            }
        });
    }
}
app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java
New file
@@ -0,0 +1,69 @@
package com.dayu.rechargeqh.activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import com.dayu.rechargeqh.databinding.ActivityRegionBinding;
import com.dayu.rechargeqh.dbBean.PowerBean;
import com.dayu.rechargeqh.dbBean.RegionBean;
import com.dayu.rechargeqh.utils.TipUtil;
/**
 * author: zuo
 * Date: 2024-03-06
 * Time: 17:28
 * 备注:区域标号卡设置界面
 */
public class RegionActivity extends BaseActivity {
    ActivityRegionBinding binding;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityRegionBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        initView();
        initData();
    }
    private void initData() {
        RegionBean regionBean = baseDao.regionDao().findFirst();
        if (regionBean!=null){
            binding.controllerOldText.setText(regionBean.getControllerCodel());
            binding.regionOldText.setText(regionBean.getRegion());
        }else {
            binding.controllerOldText.setText("当前为默认值");
            binding.regionOldText.setText("当前为默认值");
        }
    }
    private void initView() {
        binding.electricOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String region = binding.regionNewET.getText().toString();
                String controller = binding.controllerNewET.getText().toString();
                if (TextUtils.isEmpty(region)) {
                    TipUtil.show("请输入新区域地址");
                    return;
                }
                if (TextUtils.isEmpty(controller)) {
                    TipUtil.show("请输入新控制器编号");
                    return;
                }
                RegionBean regionBean=new RegionBean();
                regionBean.setRegion(region);
                regionBean.setControllerCodel(controller);
                baseDao.regionDao().insert(regionBean);
                TipUtil.show("保存成功");
                initData();
            }
        });
    }
}
app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java
@@ -1,7 +1,10 @@
package com.dayu.rechargeqh.dao;
import androidx.annotation.NonNull;
import androidx.room.Database;
import androidx.room.RoomDatabase;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
import com.dayu.rechargeqh.dbBean.AdminDataBean;
import com.dayu.rechargeqh.dbBean.CardData;
@@ -14,6 +17,7 @@
import com.dayu.rechargeqh.dbBean.PassWordCardBean;
import com.dayu.rechargeqh.dbBean.PowerBean;
import com.dayu.rechargeqh.dbBean.RechargeBean;
import com.dayu.rechargeqh.dbBean.RegionBean;
import com.dayu.rechargeqh.dbBean.UserCardBean;
/**
@@ -22,7 +26,7 @@
 * Date: 2023-11-05 16:23
 * Description:
 */
@Database(entities = {PassWordCardBean.class,CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 3, exportSchema = false)
@Database(entities = {RegionBean.class, PassWordCardBean.class, CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 4, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
@@ -49,4 +53,26 @@
    public abstract CardDataDao cardDataDao();
    public abstract PassWordCardDao passWordCardDao();
    public abstract RegionDao regionDao();
    public static final Migration MIGRATION_3_4 = new Migration(3, 4) {
        @Override
        public void migrate(@NonNull SupportSQLiteDatabase database) {
            // 在这里添加您的迁移代码
            database.execSQL("CREATE TABLE IF NOT EXISTS `RegionBean_temp` " +
                    "(`region` TEXT, `controllerCodel` TEXT, `id` INTEGER, PRIMARY KEY(`id`))");
            // 复制数据到新表
            database.execSQL("INSERT INTO RegionBean_temp (region, controllerCodel, id) " +
                    "SELECT region, controllerCodel, id FROM RegionBean");
            // 删除旧表
            database.execSQL("DROP TABLE RegionBean");
            // 重命名新表为旧表名
            database.execSQL("ALTER TABLE RegionBean_temp RENAME TO RegionBean");
        }
    };
}
app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java
@@ -25,7 +25,7 @@
                    context,
                    AppDatabase.class,
                    SqlitePath + "ConfigurationData"
            ).allowMainThreadQueries().build();
            ).allowMainThreadQueries().addMigrations(AppDatabase.MIGRATION_3_4).build();
        }
        return baseDao;
    }
@@ -37,7 +37,7 @@
                    context,
                    AppDatabase.class,
                    SqlitePath + "ConfigurationData"
            ).build();
            ).addMigrations(AppDatabase.MIGRATION_3_4).build();
        }
        return AsynchBaseDao;
app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java
New file
@@ -0,0 +1,36 @@
package com.dayu.rechargeqh.dao;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import androidx.room.Update;
import com.dayu.rechargeqh.dbBean.RegionBean;
/**
 * author: zuo
 * Date: 2024-03-07
 * Time: 14:17
 * 备注:区域表号保存
 */
@Dao
public interface RegionDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void insert(RegionBean adminData);
    @Update
    void update(RegionBean adminData);
    @Delete
    void delete(RegionBean adminData);
    @Query("select  * from RegionBean limit 1")
    RegionBean findFirst();
}
app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java
New file
@@ -0,0 +1,37 @@
package com.dayu.rechargeqh.dbBean;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
/**
 * author: zuo
 * Date: 2024-03-07
 * Time: 12:05
 * 备注:
 */
@Entity
public class RegionBean {
    @PrimaryKey(autoGenerate = true)
    public long id;
    public String region;//区域地址
    public String controllerCodel;//控制器编号(低前高后) 本区域内控制器编号
    public String getRegion() {
        return region;
    }
    public void setRegion(String region) {
        this.region = region;
    }
    public String getControllerCodel() {
        return controllerCodel;
    }
    public void setControllerCodel(String controllerCodel) {
        this.controllerCodel = controllerCodel;
    }
}
app/src/main/res/layout/activity_region.xml
@@ -67,6 +67,7 @@
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="20dp"
        android:hint="请输入新区域地址(两位16进制字符)"
        android:maxLength="4"
        android:inputType="numberDecimal" />
    <EditText
@@ -76,6 +77,7 @@
        android:layout_below="@+id/region_newET"
        android:layout_alignParentStart="true"
        android:layout_marginStart="20dp"
        android:maxLength="4"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="20dp"