diff --git a/app/src/main/java/com/ellen/dhcsqlite/MainActivity.java b/app/src/main/java/com/ellen/dhcsqlite/MainActivity.java index becc228..2d53d2a 100644 --- a/app/src/main/java/com/ellen/dhcsqlite/MainActivity.java +++ b/app/src/main/java/com/ellen/dhcsqlite/MainActivity.java @@ -6,6 +6,7 @@ import android.util.Log; import android.widget.TextView; +import com.ellen.dhcsqlitelibrary.table.reflection.ZxyChangeListener; import com.ellen.dhcsqlitelibrary.table.reflection.ZxyReflectionTable; import com.ellen.sqlitecreate.createsql.create.createtable.SQLField; import com.ellen.sqlitecreate.createsql.delete.DeleteTableDataRow; @@ -44,6 +45,13 @@ protected void onCreate(Bundle savedInstanceState) { searchData(); //其他用法 other(); + + studentTable.setZxyChangeListener(new ZxyChangeListener() { + @Override + public void onDataChange() { + //当数据库增加,删除数据时,也就是数据发生了变化都会回调这里 + } + }); } private void other() { diff --git a/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyChangeListener.java b/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyChangeListener.java new file mode 100644 index 0000000..082f57c --- /dev/null +++ b/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyChangeListener.java @@ -0,0 +1,14 @@ +package com.ellen.dhcsqlitelibrary.table.reflection; + +/** + * 数据变化监听 + */ +public interface ZxyChangeListener { + + /** + * 当数据变化时回调 + * saveDataAndDeleteAgo此系列方法会触发两次此方法的回调,后期需要更改 + * 希望后期按照增删改查进行架构的改造,让操作单元化,方便api的理解与维护更新 + */ + void onDataChange(); +} diff --git a/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyReflectionTable.java b/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyReflectionTable.java index 5ff54d5..ee004d5 100644 --- a/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyReflectionTable.java +++ b/dhcsqlitelibrary/src/main/java/com/ellen/dhcsqlitelibrary/table/reflection/ZxyReflectionTable.java @@ -37,6 +37,7 @@ public abstract class ZxyReflectionTable extends ZxyTable { private HashMap sqlNameMap; private Field primarykeyField = null; private SQLField primarykeySqlField = null; + private ZxyChangeListener zxyChangeListener; public ZxyReflectionTable(SQLiteDatabase db, Class dataClass) { super(db); @@ -64,6 +65,10 @@ public ZxyReflectionTable(SQLiteDatabase db, Class dataClass, Strin } } + public void setZxyChangeListener(ZxyChangeListener zxyChangeListener) { + this.zxyChangeListener = zxyChangeListener; + } + /** * 通过反射获取类的所有属性 */ @@ -264,6 +269,9 @@ public void saveData(T data) { } String addDataSql = addSingleRowToTable.createSQL(); exeSQL(addDataSql); + if(zxyChangeListener != null){ + zxyChangeListener.onDataChange(); + } } public String getTableName() { @@ -306,6 +314,9 @@ public void saveData(List dataList) { } String addDataSql = addManyRowToTable.createSQL(); exeSQL(addDataSql); + if(zxyChangeListener != null){ + zxyChangeListener.onDataChange(); + } } /** @@ -343,6 +354,9 @@ public void saveDataAndDeleteAgo(T data) { public void delete(String whereSQL) { String deleteSQL = getDeleteTableDataRow().setTableName(tableName).createSQLAutoWhere(whereSQL); exeSQL(deleteSQL); + if(zxyChangeListener != null){ + zxyChangeListener.onDataChange(); + } } /** @@ -351,6 +365,9 @@ public void delete(String whereSQL) { public void clear() { String clearTableSQL = getDeleteTableDataRow().setTableName(tableName).createDeleteAllDataSQL(); exeSQL(clearTableSQL); + if(zxyChangeListener != null){ + zxyChangeListener.onDataChange(); + } } /** @@ -456,6 +473,9 @@ public void update(T t, String whereSQL) { } String updateSql = updateTableDataRow.createSQLAutoWhere(whereSQL); exeSQL(updateSql); + if(zxyChangeListener != null){ + zxyChangeListener.onDataChange(); + } } /**