1、数据库创建介绍
大量相似结构数据的存储
2、数据库创建
定义类继承自SqliteOpenHelper
3、数据库的两个方法
使用SQLite Expert Professional工具可以打开创建的数据库
SqliteDataBase操作数据
onCreate方法:当数据库第一次创建的时候调用,适合做表结构的初始化
onUpgrade方法:数据库版本更新的时候调用
4、拼接SQL语句增删改查
5、命令行工具
sqlite3可以打开数据库
chcp 936 改编码gbk
chcp 65001 utf-8
6、用增删改查API
缺点:不能多张表查询
优点:简单,有返回值
7、数据库事物
同时成功或者同时失败(银行转账)
1 db.beginTransaction();//开启事物 2 try{ 3 //执行SQL操作 4 db.execSQL("update info set xxx where xxx "); 5 6 //给当前事物设置一个成功的标记 7 db.setTransactionSuccessful(); 8 }catch (Exception e){ 9 10 }finally{ 11 db.endTransaction();//关闭事物 12 }
8、ListView入门
[1]定义ListView在布局中
[2]定义ListView的数据适配器
[3]实现baseAdapter的getCount方法和getView方法
ListView显示数据量多Out of memory出错
1 //ListView显示数据量多Out of memory出错 2 if(convertView == null){ 3 //创建新的view对象 4 tv = new TextView(MainActivity.this; 5 }else{ 6 //复用历史缓存对象 7 tv = (TextView) convertView; 8 }
9、ListView显示数据原理
javaweb:
mvc=mode数据 view视图(jsp) controler(servlet)
android:
m:mode数据(javabean) view:ListView c:adapter
10、ListView优化效率
ListView布局高度如果配置为wrap_content,系统会不停的适配校验高度
ListView布局高度配为match_parent以提高效率
不管是什么adapter 作用就是把数据展示到ListView
BaseAdapter用的最多,其次ArrayAdapter,自定义实现重写getView方法
11、ListView显示复杂的页面
线性布局 相对布局都继承自ViewGroup 可以有自己的子节点
通过打气筒 inflate 可以把布局文件转换成View对象
12、获取打气筒
把自定义的布局转换成View对象
1 View view; 2 if(convertView == null){ 3 //获取打气筒方法1 4 view = View.inflate(getApplicationContext(),R.layout.item,null); 5 //获取打气筒方法2 6 view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item,null); 7 //获取打气筒方法3 8 LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 9 view = inflater.inflate(R.layout.item,null); 10 else{ 11 view = convertView; 12 } 13 }
13、ArrayAdapter使用(继承自BaseAdapter)
1 String obj[] = {"","","",""}; 2 3 //获取ListView控件 4 ListView lv = (ListView) findViewById(R.id.lv); 5 6 //创建ArrayAdapter 7 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item,obj); 8 9 //设置数据适配器 10 lv.setAdapter(adapter);
权重的概念 线性布局中使用
14、SimpleAdapter
1 //参数1:上下文;参数2:数据;参数3:布局;参数4:数据的键;参数5:布局的ID 2 SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),data,R.layout.item,new String[]{"name","phone"},new int[]{R.id.tv_name,R.id.tv_phone});
15、把数据库里的数据展示到ListView
数据库取数据,然后封装到JavaBean中