xutils3.0的IOC框架使用 (快速初始化控件,及批量绑定事件)
步骤:
1.导入jar包带lib并add到modou
2.初始化布局文件(无需在activity中关联布局)
@ContentView(R.layout.activity_main)
public class MainActivity extends Activity{}
3.初始化控件(无需再findviewbyid()关联控件)
@ViewInject(R.id.name_et)
private EditText name_et ;
@ViewInject(R.id.sex_et)
private EditText sex_et ;
4.接下来在Activity的OnCreat()方法中注册xutils的IOC的框架使用
- 就是原来常写init()的位置x.view().inject(MainActivity.this);
5.若要为控件添加点击事件等,方法的修饰符必须是private,以点击事件为例
//注解中的参数
/*
*value :绑定的控件的id的数组集合
*type :绑定的事件的类型
*/
@Event(value ={R.id.select,R.id.add,R.id.delete,R.id.pudate},type=View.OnClickListener.class)
private void OnButtonClickListener(View view)
{
}
xutils的x.database框架的使用(快速建表增删改)
xutils集成了一套较便利的SQLite使用方法
1.编写自定义Application类,继承 Application 在该类的onCreate方法中初始化xutils
并设置数据库的版本号,和名字 ,将该自定义的Application类在manifest.xml文件中进行配置
MyApplication.java(extend Application)
public static DbManager.DaoConfig config = new DbManager.DaoConfig();;
private static final String DBNAME = "test" ;
private static final int VERSION = 1 ;
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(MyApplication.this);
config.setDbName(DBNAME);
config.setDbVersion(VERSION);
}
//Manifest中加入
android:name="完整包名"
2.编写相应的表的实体类,并在相应的地方加上注解(相当于在数据库中建表了)
//@Table(name="student") 表示该类对应的是student表,表名为student
@Table(name="student")
public class Student {
//表示该属性对应的是name列, 列名为name
@Column(name="name")
private String name ;
//表示该属性对应的是id列,且这一列为主键
@Column(isId = true,name="id")
private int id ;
@Column(name="sex")
private String sex ;
@Column(name="age")
private int age ;
//提供有参和无参的构造器,并为各属性提供getter,setter方法
}
3.在Activity中展示数据
3.1在onCreate()方法获得数据库管理器DbManager db = x.getDb(MyApplication.config);
3.2获得相应的数据或者对数据进行增删改.
3.2.1>查询全部
List<Student> students = db.findAll(Student.class);
3.2.2>条件查询
WhereBuilder whereBuilder = WhereBuilder.b();
whereBuilder = whereBuilder.and("name","=",name);
whereBuilder =whereBuilder.and("age","=",age);
Student stu = db.selector(Student.class).where(whereBuilder).findFirst();
3.2.3>修改
stu = new Student(name,Integer.valueOf(id),sex,age);
db.saveOrUpdate(stu);
3.2.4>删除
db.deleteById(Student.class,Integer.valueOf(id));
//或者
WhereBuilder whereBuilder = WhereBuilder.b();
whereBuilder = whereBuilder.and("name","=",name);
whereBuilder =whereBuilder.and("age","=",age);
db.delete(Student.class,whereBuilder);