今日小结 4.1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今日小结 4.1相关的知识,希望对你有一定的参考价值。
- SQLite一章
- 生命周期,活动的创建、销毁、跳转
1.面向对象的程序设计的代码执行顺序好比是 数据结构中图的广度优先遍历
比如:
public void onClick(View v) { Log.d("mylog","onClick"); Intent it = new Intent (MainActivity.this,SubActivity.class); it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Log.d("mylog","CLEAR_TOP"); startActivity(it); Log.d("mylog","startActivity(it)"); }
onClick事件(对象)的代码中会从上到下执行每一条代码,这一层(onClick事件)的代码遍历完成后再往下,即 再去执行startActivity那一层的代码
so, log.d 的输出信息依次是:
04-01 09:29:43.281 10291-10291/? D/mylog: onClick //这一层
04-01 09:29:43.283 10291-10291/? D/mylog: CLEAR_TOP
04-01 09:29:43.325 10291-10291/? D/mylog: startActivity(it)
04-01 09:29:43.351 10291-10291/? D/mylog: onCreate SubActivity //下一层
2.销毁前一个活动
3.ContentValues 方式 把记录写入数据表
// ContentValues 其实就是一个哈希表HashMap, key值是字段名称,
// Value值是字段的值。然后 通过 ContentValues 的 put 方法就可以
// 把数据放到ContentValues中,然后插入到表中去
4.对象数组
public void update(int id, String name, String birthday){ String whereClause = "id=?"; //更新哪一个,用占位符的形式表示 String whereArgs[] = new String[]{String.valueOf(id)}; //填入占位符 ContentValues cv = new ContentValues(); cv.put("name",name); cv.put("birthday",birthday); this.db.update(TABLENAME, cv, whereClause, whereArgs); this.db.close(); }
5.构造函数是在实例化对象的时候执行,但是 onCreate() 方法不一定是在实例化对象时候执行
在Activity的子类当中,onCreate()是最先执行的,在这个方法中完成活动的初始化操作,比如加载布局,绑定监听事件,实例化对象等操作
而在SQLiteOpenHelper的子类中,onCreate()并不是在实例化对象:
mdbhelper = new DBHelper(SQLiteActivity.this); //实例化SQLiteOpenHelper
后执行,而是要在
mdbhelper.getWritableDatabase()
方法后,也就是创建数据库后执行。
因此,可以在这个onCreate()方法中,写入sql 语句去创建数据表
6.占位符?
//SQL语句方式,使用占位符 String sql = "INSERT INTO" + TABLENAME + "(name,tempeindex)VALUES(?,?)"; Object args[] = new Object[]{name,tempeindex}; this.db.execSQL(sql,args); this.db.close();
以上是关于今日小结 4.1的主要内容,如果未能解决你的问题,请参考以下文章