学习源码《随手记》知识总结
来源:互联网 发布:python小游戏代码 编辑:程序博客网 时间:2024/05/20 14:40
1:这个APP,主要是一个记录每天收入与支出账目的应用
2:应用到的知识点
1:Android SQLlite 数据库相关知识
如果应用中需要多了表,可以统一定义一个类,将各个表的相关信息一起写出来
主要代码:
public class MyDbInfo {
private static String TableNames[] = {
"TBL_EXPENDITURE_CATEGORY",
"TBL_EXPENDITURE_SUB_CATEGORY",
"TBL_INCOME_CATEGORY",
"TBL_INCOME_SUB_CATEGORY",
"TBL_ACCOUNT_TYPE",
"TBL_ACCOUNT_SUB_TYPE",
"TBL_ACCOUNT",
"TBL_STORE",
"TBL_ITEM",
"TBL_EXPENDITURE",
"TBL_INCOME",
"TBL_TRANSFER"
};//表名
private static String FieldNames[][] = {
{"ID","NAME","BUDGET"},
{"ID","NAME","PARENT_CATEGORY_ID"},
{"ID","NAME"},
{"ID","NAME","PARENT_CATEGORY_ID"},
{"ID","NAME","POSTIVE"},
{"ID","NAME","PARENT_TYPE_ID"},
{"ID","NAME","TYPE_ID","SUB_TYPE_ID","ACCOUNT_BALANCE"},
{"ID","NAME"},
{"ID","NAME"},
{"ID", "AMOUNT", "EXPENDITURE_CATEGORY_ID", "EXPENDITURE_SUB_CATEGORY_ID", "ACCOUNT_ID", "STORE_ID", "ITEM_ID", "DATE", "MEMO"},
{"ID", "AMOUNT", "INCOME_CATEGORY_ID", "INCOME_SUB_CATEGORY_ID", "ACCOUNT_ID", "ITEM_ID", "DATE", "MEMO"},
{"ID", "AMOUNT", "ACCOUNT_ID", "ITEM_ID", "DATE", "MEMO"}
};//字段名
private static String FieldTypes[][] = {
{"INTEGER PRIMARY KEY AUTOINCREMENT","text","DOUBLE"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT","INTEGER"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT","INTEGER"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT","INTEGER","DOUBLE"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT","INTEGER"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT","INTEGER","INTEGER","DOUBLE"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","TEXT"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","DOUBLE","INTEGER","INTEGER","INTEGER","INTEGER","INTEGER","TEXT","TEXT"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","DOUBLE","INTEGER","INTEGER","INTEGER","INTEGER","TEXT","TEXT"},
{"INTEGER PRIMARY KEY AUTOINCREMENT","DOUBLE","INTEGER","INTEGER","TEXT","TEXT"}
};//字段类型
public MyDbInfo() {
// TODO Auto-generated constructor stub
}
public static String[] getTableNames() {
return TableNames;
}
public static String[][] getFieldNames() {
return FieldNames;
}
public static String[][] getFieldTypes() {
return FieldTypes;
}
(java 二维数组,扩展 n维数组。。。)
DBHelper中
@Override
public void onCreate(SQLiteDatabase db)
{
if (TableNames == null)
{
message = NO_CREATE_TABLES;
return;
}
for (int i = 0; i < TableNames.length; i++)
{
String sql = "CREATE TABLE " + TableNames[i] + " (";
for (int j = 0; j < FieldNames[i].length; j++)
{
sql += FieldNames[i][j] + " " + FieldTypes[i][j] + ",";
}
sql = sql.substring(0, sql.length() - 1);
sql += ")";
db.execSQL(sql);
}
}
2:xml 布局,主要是FrameLayout的使用以及style的使用
如果多个控件或者viewgroup 具有相同的属性 那么可以将这些属性统一写成一个style 一方面避免多次书写 另一方面使代码简洁了,如果某一控件具有一个独特的属性,那么可以定义一个style 继承统一的style 并书写其独特的属性
统一的style
<style name="common_row_layout">
<item name="android:background">@drawable/common_row_layout</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">50.0dip</item>
</style>
独特的属性
<style name="common_row_layout_top" parent="@style/common_row_layout">
<item name="android:background">@drawable/common_row_layout_top</item>
</style>
(java 父类与子类的关系 -->继承)
3:计算当天处于那个周,主要是Calendar的使用
4:通过Thread更新UI 作出动态的效果
- 学习源码《随手记》知识总结
- JSP知识随手记
- Java 知识小点-随手记
- 小知识,随手一记
- Unity小知识随手记
- php一些知识随手记
- wireshark学习随手记
- 前台学习随手记
- java学习随手记
- 随手总结
- WebGL学习随手记(一)
- Android学习随手记--Fragment
- CI学习随手记(一)
- CI学习随手记(二)
- CI学习随手记(三)
- Hadoop学习笔记-随手记
- python学习过程随手记
- AA记账随手记ios项目源码
- 广州传智播客0615JAVA就业班开班
- 浅谈HTML5 WebSocket
- IE 消息: 缺少标识符、字符串或数字
- 纠结的adb
- C++Primer笔记 第一章 快速入门
- 学习源码《随手记》知识总结
- 泰勒公式
- C3P0在spring中的配置
- 黑马程序员 c#基础之break continue语句
- 分析Linux ALSA系统架构以及Codec简介
- sql server 2008安装过程中服务器配置出错解决办法
- jquery-validate表单验证实例一
- 多线程编程3 - NSOperationQueue
- 利用 Flare3D 和 Stage3D 创建 3D Flash 游戏