代码拉取完成,页面将自动刷新
#项目名称:简约记账
开发工具:IDEA
项目描述:基于安卓基础知识开发的个人记账工具,其中包括记录当天收支情况,计算当天以及当月的收支总数,能查看历史账单,能对于每个月收支情况进行图标分析,百分比分析
能够搜索用户关于某种记录的全部收支情况等功能,基本上能解决个人记账的所有问题,界面简约美观,滑动流畅。
1、绘制布局,掌握android基本的view空间的属性和使用
2、熟练掌握Activity页面的展示,跳转和传值
3、使用碎片化加载界面,滑动视图切换页面
4、自定对话框
5、自定义软键盘的绘制和使用
6、列表视图以及网络视图的适配器使用和页面加载
7、使用android自带的数据库,熟练创建表,并进行增删改查
8、定义drawbel文件,设定布局以及控件样式
9、使用MPAndroidChart第三方框架绘制柱状图
bug记录:
更早:使用IDEA的时候无法和Androi Studio一样在Project Structure直接搜索并下载使用对应的Library,只能在build gradle中导入
2021-7-14 17:34——>在日历的时间输入框在软键盘弹出的时候遮住编辑框
解决:因为DatePicker的头布局隐去代码写错,导致屏幕放不进去,将其改正就好
2021-7-15 00:07——>DBManager类中,db的rawQuery方法的参数报错
解决:原来是在建账本表的时候忘记建立month这个字段了,导致查询的时候报错
注意:在SQLite的命令中占位符使用的是字符串类型
2021-7-15 09:30——>添加头布局失败,原因是添加头布局的操作要在适配器之前
解决:要注意,需要添加头布局的View必须先初始化该View的所有控件,在添加需要添加的头布局
解决前:protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addLVHeaderView();
initTime();
initView();
mDatas = new ArrayList<>();
// 添加LIstView的头布局
// 设置适配器,将每一行数据加载到列表中
adapter = new AccountAdapter(this, mDatas);
todayLv.setAdapter(adapter);
}
解决后:protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initTime();
initView();
mDatas = new ArrayList<>();
// 添加LIstView的头布局
addLVHeaderView();
// 设置适配器,将每一行数据加载到列表中
adapter = new AccountAdapter(this, mDatas);
todayLv.setAdapter(adapter);
}
2021-7-15 11:26——>在为ListView添加长按删除的时候,点击确定按钮,虽然删除成功,但是出现闪退
解决:
MainActivity中的showDeleteItemDialog:在使用list.remove()方法时,传入的参数是 int id;将传入的类型变成AccountBean(即需要被删除的数据类型)
2021-7-16 12:22——>historyActivity跳转闪退
解决:在HistoryActivity中,需要将时间的初始化和数据的加载方法放在适配器之后
12:31——>在输入支出和收入页面中,输入两次数据以上会闪退且必须卸载重装才行
解决:未解决,初步判定是华为手机的问题,因为我在原生虚拟机运行并不会出现这种结果。
18:18——>在HistoryActivity中,点击日历图标会闪退
解决:因为在CalendarDialog中,addViewToLayout()方法中,添加布局的时候,在将布局文件转换成View对象后需要先使用addView()方法将View传入对应的View中,再进行初始化和设置
#掌握:
1、数据库的模糊查询:
①% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
②_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
2、SharePreferences:
3、添加头布局步骤:
①将布局文件转换成View对象
②将view添加到需要添加的布局中
https://blog.csdn.net/zhangphil/article/details/78435502
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。