android软件简约记账app开发day06-将记账条目添加到数据库并且绘制备注页面

首先写添加到数据库

在DBOpenHelper中添加创建记账表的语句

//创建记账表
sql = "create table accounttb(id integer primary key autoincrement,typename varchar(10),sImageId integer,beizhu varchar(80),money float," +
       "time varchar(60),year integer,month integer,day integer,kind integer)";
db.execSQL(sql);

在数据库管理类中添加保存方法

/*
* 向记账表当中插入一条元素
* */
public static void insertItemToAccounttb(AccountBean bean){
   ContentValues values = new ContentValues();
   values.put("typename",bean.getTypename());
   values.put("sImageId",bean.getsImageId());
   values.put("beizhu",bean.getBeizhu());
   values.put("money",bean.getMoney());
   values.put("time",bean.getTime());
   values.put("year",bean.getYear());
   values.put("month",bean.getMonth());
   values.put("day",bean.getDay());
   values.put("kind",bean.getKind());
   db.insert("accounttb",null,values);
}

我们在baseFragment类中写一个保存到数据库的方法,为了方便继承实现,定义成抽象方法,并且把该类改为抽象类。

/**
* 将数据保存到数据库,因为收入支出保存不同,所以我们封装成抽象类,抽象方法。
*/
public abstract void saveAccountToDB();

分别在子类中重写

@Override
public void saveAccountToDB() {
   accountBean.setKind(1);
   DBManager.insertItemToAccounttb(accountBean);
}
@Override
public void saveAccountToDB() {
   accountBean.setKind(0);
   DBManager.insertItemToAccounttb(accountBean);
}

绘制备注界面

我们在点击备注时,要弹出界面,我们今天只画一下该界面

新建dialog_beizhu.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent" android:layout_height="wrap_content"
   android:padding="10dp"
   android:background="@color/white">
   <TextView
       android:id="@+id/dialog_beizhu_tv"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/add_remark"
       android:textSize="16sp"
       android:textColor="@color/black"/>
   <EditText
       android:id="@+id/dialog_beizhu_et"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/dialog_beizhu_tv"
       android:hint="@string/remark"
       android:layout_marginTop="10dp"
       android:layout_marginBottom="20dp"
       android:textSize="14sp"
       android:background="@color/white">
       <requestFocus/>
   </EditText>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:layout_below="@id/dialog_beizhu_et"
       android:padding="10dp">
       <Button
           android:id="@+id/dialog_beizhu_btn_cancel"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="@string/cancel"
           android:background="@drawable/dialog_btn_bg"
           android:textStyle="bold"
           android:textColor="@color/green_006400"
           android:layout_marginRight="5dp"/>
       <Button
           android:id="@+id/dialog_beizhu_btn_ensure"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="@string/ensure"
           android:background="@drawable/main_recordbtn_bg"
           android:textStyle="bold"
           android:textColor="@color/white"
           android:layout_marginRight="5dp"/>
   </LinearLayout>
</RelativeLayout>

在drawable中添加drawable文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
   <!-- 四个角设定弧度-->
   <corners android:radius="20dp"/>
<!--   填充颜色-->
   <solid android:color="@color/white"/>
   <stroke android:color="@color/green_006400" android:width="3dp"/>
</shape>

在strings.xml中添加变量

<string name="add_remark">添加备注</string>
<string name="remark">备注</string>
<string name="ensure">确定</string>
<string name="cancel">取消</string>

效果图:

今天的内容比较简单,我们明天见。

最新文章

  1. Android SDK Manager中不显示未下载的api解决方案
  2. Android 采用Layout Inflater创建一个View对象
  3. thinkphp 行为扩展以及插件机制介绍
  4. bzoj4562: [Haoi2016]食物链--记忆化搜索
  5. asp.net mvc中包含webapi时,token失效产生302的解决方案
  6. Project Euler 96:Su Doku 数独
  7. 各开源协议BSD,GPL,LGPL,Apache 2.0,mit等简介*
  8. GUI编程笔记(java)05:GUI事件监听机制原理和举例说明
  9. Android 有缓存功能的请求封装接口
  10. Error occured processing XML &amp;#39;Cannot find class [springmvc.extention.BeanArgumentResolver]&amp;#39;.
  11. js中的回调函数的理解
  12. create-react-app创建的项目中registerServiceWorker.js文件的作用
  13. &#39;QueryDict&#39; object is not callable 错误解析
  14. 11 week blog
  15. 斯巴达克斯诅咒者之战第三季/全集Spartacus迅雷下载
  16. 【Java】java运行jar时,报 java.lang.UnsupportedClassVersionError
  17. webstorm忽略node_modules目录
  18. November 25th 2016 Week 48th Friday
  19. 10个步骤让你成为高效的Web开发者
  20. 求子数组的最大和要求O(n)

热门文章

  1. 4月2日 python学习总结
  2. 【文件系统】dumpe2fs命令
  3. [SPDK/NVMe存储技术分析]006 - 内存屏障(MB)
  4. centOS 7 离线安装 MySQL 5.6 完美安装
  5. Discuz!X系列全版本后台sql注入复现
  6. OO第一单元
  7. Oacle 插入多条记录的语法理解;INSERT ALL INTO ....... SELECT 1 FROM dual;
  8. 本地连接MySQL云服务器步骤与解决方案
  9. SpringAOP+RabbitMQ+WebSocket实战
  10. 插值方法 - Lagrange插值多项式