Android基础3(数据库创建、增删改查、事务、listView)

# 1 Android下数据库创建

* mysql、sqlserver2000、2003、2008、oracle * access 实际是一个文件、sqlite类似。

* File File = new File(info.txt);

* FileOutPutStream fos = FileOutPutStream(file);

* extends Thread

* extends  SqliteOpenHelper

# 2 Android下数据库的增删改查

* 利用sql语句实现增删改查,sql语句非常容易写错

* 可以进行多表查询

# 3.Android下另外一种增删改查方式

* 不用写sql语句,不能进行多表查询

* helper.getReadableDatabase();   //没有加锁   

public SQLiteDatabase getReadableDatabase()

{     

  synchronized (this)

  {    

    return getDatabaseLocked(false);   

      }         

}

* helper.getWritableDatabase();   // 加锁了

        public SQLiteDatabase getWritableDatabase() { 

    synchronized (this) {   

    return getDatabaseLocked(true);        

               }       

      }

# 4 数据库的事务 

什么是事务:要么同时成功,要么同时失败

* 事务:银行转账

 //1.在业务逻辑开始的时候开启事务 

 db.beginTransaction();

try

//写我们的转账逻辑 

db.execSQL("update info set money=money-200 where name=?", new Object[]{"AA"}); 

int i =1/0;      

db.execSQL("update info set money=money+200 where name=?", new Object[]{"BB"});

 //设置一个成功的标记,业务逻辑结束的时候告诉系统数据库提交成功       

db.setTransactionSuccessful();     

}catch (Exception e) {    

// TODO: handle exception      

e.printStackTrace();      

Toast.makeText(getApplicationContext(), "服务器忙 请稍后在转", 1).show();      

  }     

finally {        

  // 必须关闭事务 ,告诉数据库系统结束.      

//防止Sqlite被挂掉。       

db.endTransaction();

  }

  -----------------------------------------------------------

# 5 listview 入门 (非常非常重要)

* 1 在布局中定义一个listview

* 2 listview 显示需要一个适配器   

* 3 自定义了一个适配器  MyAdapter extends BaseAdapter

* 4 必须要实现 getCount()和  getView()

# 6listview 优化(类似于买东西的托)

*    if (convertView == null) {    

   // 创建一个新的对象     

  tvTextView = new TextView(getApplicationContext());     

  System.out.println("创建新的对象 "+position);            

    }else

  {    

   // convertView 不为空     

  tvTextView = (TextView) convertView;   

   System.out.println("复用历史缓存对象"+position);   

      }

# 7 复杂listview界面显示 (重要)

* getview()通过打气筒把一个布局文件转换为一个view 对象,返回给getview方法    

# 9 arrayadapter  

 lv.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.item, R.id.tv, objects));

# 10 simpleadapter 

# 11常用获取inflate的写法

 市面上常见获取打气筒的方法

 1  把一个布局文件转换为一个view    

  view = View.inflate(getApplicationContext(), R.layout.item, null);     

    2把一个布局文件转换为一个view     

  LayoutInflater inflater = LayoutInflater.from(getApplicationContext());     

  view = inflater.inflate(R.layout.item, null);        

   3 把一个布局文件转换为一个view         

   LayoutInflater inflater  = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);    

  view = inflater.inflate(R.layout.item, null);

# 12 数据库的listview的界面显示(重要)

* 1 先写查询所有内容的业务方法

* 2 把查询出来的数据 显示到listview上

------------------------------------------------------

# 13 国际化

在res目录下创建对应国家语言集的目录

# 样式和主题 theme css   div calss  Id

* 共同点 定义的方式是相同的

* 不同点 

* 样式的作用范围比较窄,主要作用在控件上(textView Button )

* 主题的作用范围比较大(Activity  整个应用)

# 对话框

原文地址:https://www.cnblogs.com/kingqinwang/p/5108791.html