# 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 整个应用)
# 对话框