Android 做一个简单记事本app

本文记录了使用Android Studio创建一个简单记事本app的过程,包括创建编辑笔记的activity,设置输入法不遮挡输入框,使用SQLite数据库存储笔记,使用ListView显示笔记记录,以及设置点击事件进行笔记的编辑和删除。通过数据库操作,实现了数据的增删查改,并介绍了ListView的使用和Adapter的适配。此外,解决了记事内容换行导致的界面显示问题和ListView的性能优化。
摘要由CSDN通过智能技术生成

20200513

1、引用了Android studio自带的第一个模板(右下角带小圆按钮的),用这个按钮做点击事件用来跳到编辑笔记界面。项目创建会多带两个java文件(FirstFragment、SecondFragment)以及对应的两个xml文件,这里我尝试将这几个文件删掉结果运行会崩,然后我将这几个文件的主题代码注释掉又没问题。暂时不管那么多。

2、创建一个编辑笔记的activity和对应的xml,新建的activity要在androidManifest.xml文件里面注册。然后在自建Activity的标签里面添加android:windowSoftInputMode=“adjustResize”,这样弹出输入法的时候就不会遮挡文本输入框。(这行代码意思作用是当弹出输入法时以更小的布局去显示界面,相当于输入法把界面挤上去了。还有一个adjustPan,能使当前内容自动移动避免被输入法遮挡)。xml文件里面很简单就一个EditView和一个Button,EditView里面填入的提示文字用android:hint,这样输入时就不用像android:text一样再删一次提示文字了。然后设置android:inputType=“textMultiLine” android:singleLine=“false”,这样就可以像文本文档一样一直输入多行了。然后背景色android:background设置一个颜色以区分,虽然简陋但还是要有个样子哈哈。以前设置颜色的时候都要去网上搜颜色代码,这次才发现这一行设置左边行数旁边会有一个小颜色框显示的当前颜色,点一下就可以调颜色了。我就说这么功能全面的开发软件怎么会没有调色板呢!
在这里插入图片描述

然后就是Button的点击事件了,首先判断EditView里面不为空,然后就是痛苦的数据库环节。但好在AndroidStudio里面自带的SQLite操作简单且方便,提供了一系列方法避免了直接写sql语句。

3,要操作数据库,首先就要先创建一个类继承SQLiteOpenHelper类,看名字就知道,数据库开启助手,专门用来进行数据库操作的类,虽然我了解的不多,但是要进行数据库操作应该是离不了它了。创建好我的NoteDatabasehelper后,首先当然是实现父类的两个抽象方法,一个onCreate(SQLiteDatabase db){},一个onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){}。前一个当然就是建表等sql语句的执行地方了。后面一个则是升级数据库用的,只要传进去的新版本号大于老版本号,就可以在里面执行升级逻辑。然后我们还要一个构造函数,传一个Context对象进来。这个Context我搞得不是很清楚,反正就是到处都有用。然后构造方法里面会有一个父类的构造实现,传进四个参数,一个就是Context,然后数据库名,factory(一般都为null),数据库版本号。数据库名和版本在前面定义一个static final的就好了,然后再onCreate里面执行建表语句。这样当我们调用这个构造方法的时候就会建库,然后会自动调用onCreate方法建表(这里我是自己写的建表语句然后在onCreate里面执行的,之前老是建库建表傻傻分不清楚)。但是如果后续想要再加表的话貌似会失败?因为数据库已经存在,不会再调用onCreate方法了,这里就需要onUpgrade方法来更新数据库了。

4、写好NoteDataBaseHelper类以后,我们就可以在之前的Activity的点击事件里面调用了,首先当然是new 一个NoteDatabaseHelper类,传进一个当前的Context对象(当前Activity.this),然后就是声明一个SQLitDatabase对象 = 我们new出来的NoteDataBaseHelper对象.getReadableDatabase()。一直到这里数据库才算真正创建出来。这里注意其实有两个方法都可以创建数据,即getReadableDatabase()和getWritableDatabase()。这两个都可以创建数据库,数据库如果已经存在就会自动打开数据库,然后返回一个可对数据库进行操作的对象。**区别在于当数据库不可写入(如磁盘满了)的情况下,getReadableDatabase()方法返回的对象将以只读的方式打开数据库ÿ

  • 10
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值