zoukankan      html  css  js  c++  java
  • Android学习笔记【03】【数据存储与数据展示】

    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中

  • 相关阅读:
    开源 .net license tool, EasyLicense !
    Logging with NLog
    Logging with Log4net (二)
    Logging with Debug And Trace (一)
    ThoughtWorks代码挑战——FizzBuzzWhizz
    开源插件 :MahApps.Metro.IconPacks
    Java地址:
    小程序源码下载[demo整理自github]
    多块图形合并(自动合并相交块)
    Textbox
  • 原文地址:https://www.cnblogs.com/leishoulin/p/7407254.html
Copyright © 2011-2022 走看看