TextView tv;
@Event()
这个注解主要用于事件的处理。
源代码:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Event {
/**
- 控件的id集合, id小于1时不执行ui事件绑定.
*/
int[] value();
/**
- 控件的parent控件的id集合, 组合为(value[i], parentId[i] or 0).
*/
int[] parentId() default 0;
/**
- 事件的listener, 默认为点击事件.
*/
Class<?> type() default View.OnClickListener.class;
/**
- 事件的setter方法名, 默认为set+type#simpleName.
*/
String setter() default “”;
/**
- 如果type的接口类型提供多个方法, 需要使用此参数指定方法名.
*/
String method() default “”;
}
这里有几点注意点:
-
注解的方法必须用private进行修饰
-
对于返回值类型没有要求
-
参数名和type的接口要求的参数名要一致
-
多个value值用{}括起来
举一个小例子:
@Event(value = {R.id.btn1,R.id.btn2,R.id.btn3})
private void onClick(View v) {
switch (v.getId()){
case R.id.btn1 :
Toast.makeText(getApplicationContext(),“btn1被点击了”,Toast.LENGTH_LONG).show();
case R.id.btn2 :
Toast.makeText(getApplicationContext(),“btn2被点击了”,Toast.LENGTH_LONG).show();
case R.id.btn3 :
Toast.makeText(getApplicationContext(),“btn3被点击了”,Toast.LENGTH_LONG).show();
}
}
DbUtils模块的使用
首先,我们在MainActivity中new一个DbManager.DaoConfig
这个DaoConfig都有什么东西呢?这里我总结一下:
public DaoConfig setDbDir(File dbDir) #设置数据库存储目录
public DaoConfig setDbName(String dbName) #设置数据库名
public DaoConfig setDbVersion(int dbVersion) #设置数据库版本
public DaoConfig setAllowTransaction(boolean allowTransaction) #设置是否开启事务(默认为true)
public DaoConfig setDbOpenListener(DbOpenListener dbOpenListener) #数据库打开监听
public DaoConfig setDbUpgradeListener(DbUpgradeListener dbUpgradeListener) #数据库更新监听
public DaoConfig setTableCreateListener(TableCreateListener tableCreateListener) #监听表创建
了解清楚后,我们可以开始配置了:
1.创建并配置DbManager
@ContentView(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
DbManager db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
//创建并配置DaoConfig
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName(“test1.db”)
.setDbDir(new File("/sdcard"))
.setDbVersion(2)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) throws DbException {
//开启WAL,提升写入速度
db.getDatabase().enableWr