今日小结 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();
时间: 2024-08-05 07:04:06

今日小结 4.1的相关文章

今日小结 5.7

1. 自定义越多 灵活性越高,封装越多 灵活性越差 联想(1)灵活性:大量封装的图形化编程Labview <  适当封装的Java < 接近底层的C (2)ListView 中的Adapter 灵活性:ArrayAdapter < SimpleAdapter < BaseAdapter ArrayAdapter 只能显示一行一行的文字(字符串) SimpleAdapter 既可以显示图片又可以显示文字,它将xml中的图片控件和文字控件 关联上 数据集合,内部已经封装好了 setIm

今日小结 4.24

JAVA IO,StringBuffer 类  OK JAVA网络编程 对象多态性,向上转型,向下转型  OK 1.List接口的常用子类 (1)ArrayList 子类 数组List (2)LinkList 子类,实现Queue接口  链表List 2.引用类型和原始数据类型 int 是原始类型 integer 是引用类型,是int的封装类 为什么要进行封装呢? 因为封装成类就会有各种方法, 方便进行类型转换,数据处理 比如: //int 和 Integer int a = 3; //原始数据

今日小结

1.再次看了角色管理模块的源码,加深对项目的理解 2.写了t_role表格,写了服务层的代码 3.试着写了角色管理的控制层代码,但对这块的html文件不熟,要重新写这块的脚本文件,所以今天这块进展不大,具体的添加.删除功能还不能实现,明天小组商量后继续完善这块的代码

今日小结 4.30

1.style 一般是把多种属性(item)封装成一个类型(style),方便复用 比如,在style.xml里看到了 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="c

今日小结 4.29

布局layout,视图view  OK 1.布局layout是盛放视图view的容器 再说一遍,视图view是放在layout布局中的! 通过改变布局大小来改变视图大小 布局layout的参数一般是大小,位置,内容(内部视图控件)的排列方式(水平,垂直等) 所以在视图控件(比如Button)的设置中,关于layout_的都是布局的参数,比如 layout_width 是改变Button所在的布局的宽度的,如果选择matchparent则是充满整个布局 2.LayoutInflate 常用于动态加

今日小结 4.15

SD卡照片显示到RecyclerView OK 数据库的查询 rawquery()   OK 1.软件 架构,模型,开发方法(开发框架) MVC,MVP 2.泛型 泛型接口 public interface Presenter<V> { 3.线程池 thread pool 线程池适合于并行发生的若干个持续时间不长且互不干扰的函数 4.MVP模式 减少了Activity的职责,使分工更明确,代码结构更清晰

今日小结0807

今天看了: 1.HTML的学习 字体标签 标题标签 超链接 列表标签 表格标签 跨行跨列表格 表单标签 对HTML有了深入的了解,再结合spring练习3和练习4,对练习有了更深入的理解 2.做了练习题目1和题目3 明天计划: 做练习题目2和题目4 学习js

今日小结 5.2

服务 Service  OK 广播 Broadcast   OK 1. 一些Bug 记录 (1)记得在Manifest中添加 服务,否则 编译不报错,服务却没有执行 <service android:name=".BLEService"/> (2) myViewHolder = new MyViewHolder();Log.d(TAG, "getView: 完成了new MyViewHolder"); //一定要指定是 converView下的findV

今日小结 4.7

优化ToolBar,Menu 绑定照片到RecyclerView中 —— OK 学习Fragment ——OK 按钮的点击变化 1.Fragment将每一个视图部分(Fragment)的视图设置(Fragment layout)和程序编写(XXFragment.class)相分开 , 提高了代码的可读性,复用性和维护性 2.使用RelativeLayout + LinearLayout 嵌套完成四个按钮底部均匀放置, 使用RelativeLayout完成放置底部操作 android:layout