十天冲刺-02
昨天通过观看视频,学习并应用了Android的数据库sqlite,通过简单的按钮,实现创建数据库,还有数据库信息的录入
今天准备制作一个简单的界面,实现消费类型的点击录入。
遇到的问题是,在数据库的添加时无法还无法直接知道是否添加成功,而如果点击第二次的话就会闪退。
private static MysqliteHelper helper;
// 定义按钮对象
private RadioButton net_shop = (RadioButton)findViewById(R.id.net_shop);
private RadioButton food = (RadioButton)findViewById(R.id.food);
private RadioButton supermarket = (RadioButton)findViewById(R.id.supermarket);
private Button ty = (Button)findViewById(R.id.btn_insert);
private Student student = new Student();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper=DbManage.getIntance(this);
}
public void creatDb(View view)
{
/**
* helper.getReadableDatabase()helper.getWritableDatabase() 创建或打开数据库
* 如果不存在就创建数据库,如果存在则直接打开或使用数据库
* 默认情况下都表示可读可写的数据库对象 如果磁盘已满或者数据库本身权限情况下
* helper.getReadableDatabase()打开的是只读数据库
*/
SQLiteDatabase db = helper.getReadableDatabase();
//helper.getWritableDatabase();
}
public void click(View view)
{
switch(view.getId())
{
case R.id.btn_insert:
{
录入消费类型
ty.setOnClickListener(new View.OnClickListener(){
@SuppressLint("ResourceType")
@Override
public void onClick(View v) {
if(net_shop.isChecked())
{
student.setType("网上购物");
}else if (food.isChecked())
{
student.setType("食堂消费");
}else if(supermarket.isChecked())
{
student.setType("超市购物");
}
}
});
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "insert into student values(1,'1','1','1','1','1','0')";
DbManage.execSQL(db,sql);
db.close();
break;
}
case R.id.btn_update:
db=helper.getWritableDatabase();
String updatesql="update person set name='xiao' where _id=3";
DbManage.execSQL(db,updatesql);
db.close();
break;
}
}
}
浙公网安备 33010602011771号