十天冲刺-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; } } }