安卓开发4——SQLite和SQLiteDatabase应用

本实验在“安卓开发2”实验基础上进行:安卓开发2——碎片Fragment的使用

实验内容:

1、设计一个新闻数据库,包含一个新闻表:

          表名:NewsTable

字段名

数据类型

约束

说明

nID

integer

主键,自增

新闻ID

Title

text

 

标题

Content

text

 

内容

Source

text

 

来源

time

text

 

发布时间

imageSource int   新闻图片的地址来源

2、重写SQLiteOpenHelper类,以使第一次加载时能创建数据库及表,并insert几条初始新闻;当ListActivity加载时,读取数据库中的信息,并创建News对象序列并将数据库中的记录写入,其他程序逻辑可不修改。

3、修改新闻列表,以ListView实现,或在Layout中动态生成TextView实现,使得新闻列表可根据数据库中新闻条数多少而增减。

4、使用SharedPreferences保存已看过的新闻ID,下次再进入时以灰色显示。

实验过程:

1、新建CreateNewDB类继承SQLiteOpenHelper,重写其中的方法。该类用于创建数据库,数据库中包含一张表,表名为NewsTable。

                            

2、在ListActivity活动第一次创建时进行数据库的创建,数据库名为News.db,随后插入三则新闻数据在表中。接着从表中读出新闻数据,利用cursor.getCount()获取新闻条数,再创建相应数目的News[]数组,最后把每条news[i]添加进lstNews中,用于后面自定义适配器。

                              

3、自定义适配器MyAdapter继承ArrayAdapter,该适配器可通过泛型来指定要适配的数据类型(该处数据类型为News),然后将数据直接传递给ListView。往MyAdapter中传入的布局R.layout.news_item为ListView中每一子项的布局。

                                

                                

                                                          

4、getAlRead()方法的功能为判断新闻是否达到阅读时间,若是,则将新闻ID添加进lstID,并将该lstID中的数据转成以“,”相间的字符串,最后将字符串以SharePreferences的方式进行保存。

changeColor()方法的功能为利用SharePreferences方法读取之前保存的字符串,再利用split()方法获取到已读新闻的ID,最后将已读新闻置灰。这两个方法都在ListActivity的onStart中调用。

                               

                          

                                                                                         下面是程序运行结果:

                     

 

猜你喜欢

转载自blog.csdn.net/h2503652646/article/details/84936337