一、项目概述
推看App采用mvp架构设计,运用SQLite、Service、ContentProvider、Fragment、Retrofit等技术完成。打开应用进入欢迎页面,右上角倒计时结束进入登录页面,点击注册跳转至注册页面,注册成功后自动跳转至登录页面,可以记住密码。登录成功进入主页面,显示轮播图和新闻列表,点击任意新闻进入详情页面,可以滑动浏览图文,还能分享文章链接。关于页面能够给软件评分,查看使用帮助,修改密码、检查更新和退出登录。总体而言,系统设计逻辑清晰合理,用户提示友好,使用体验良好,界面美观大方,功能丰富齐全。
二、开发环境
三、详细设计
1、网络请求
定义一个RetrofitFactory
类,它主要用于创建和管理一个名为 ZhifuService
的服务实例。ZhifuService
是一个使用 Retrofit 框架实现的网络请求服务。Retrofit
是一个类型安全的 HTTP
客户端,用于 Android 和 Java,它使得与 RESTful Web 服务的交互变得容易。这个类的主要作用是为 ZhifuService
提供一个单一的访问点,确保在整个应用程序中只有一个 ZhifuService 实例被创建和使用,这是单例设计模式的实现。
静态同步方法 getZhifuService()
,用于获取或创建 ZhifuService
的实例。如果 mZhifuService
为 null,则通过 Retrofit
创建一个新的 ZhifuService
实例。首先,使用 Retrofit.Builder
创建一个 Retrofit
实例,设置基础 URL
和转换器工厂(在这里是 GsonConverterFactory
)。然后,使用 retrofit.create(ZhifuService.class)
创建 ZhifuService
实例,并将其赋值给 mZhifuService
。最后,返回 mZhifuService
。
public class RetrofitFactory {
public static final String ZHIHU_URL = "http://news-at.zhihu.com/";
private static ZhifuService mZhifuService;
//ZhifuService:单例模式。
public static synchronized ZhifuService getZhifuService() {
if (mZhifuService == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ZHIHU_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
mZhifuService = retrofit.create(ZhifuService.class);
}
return mZhifuService;
}
}
2、数据库
实现了一个数据库辅助类 DBHelper
,它继承自 SQLiteOpenHelper
,用于管理 Android 应用程序中的本地 SQLite 数据库。该类定义了两个表:Story
用于存储故事数据,包括唯一标识、前缀、标题、图片和日期;User
用于存储用户账户信息,包括账号和密码。DBHelper
提供了创建、升级数据库的逻辑,以及针对 Story
和 User
表的各种 CRUD(创建、读取、更新、删除)操作的方法。例如,它允许保存故事到数据库、按日期加载故事、删除故事、添加和删除用户、更新用户密码、检查用户账号是否存在以及获取用户密码等功能。通过这些方法,开发者可以方便地与数据库进行交互,实现数据的持久化和检索。
public static final String DB_NAME = "story.db";
public static final int VERSION = 1;
private static DBHelper dbHelper;
3、逻辑简介
NewsListFragment
实现了一个新闻列表页面的功能,具体来说,它创建了一个 NewsListFragment
,该 Fragment 展示了新闻列表和顶部轮播图。通过使用 RecyclerView、SwipeRefreshLayout 和其他 UI 组件,它支持下拉刷新、无限滚动加载更多新闻、以及点击浮动按钮快速回到列表顶部的功能。在后台,它与一个 Presenter(NewsListPresenterCompl
)协作,通过调用其方法来加载最新和之前的新闻数据,并在视图上更新这些数据。此外,它还处理了新闻详情页面的导航,当用户点击某条新闻时,会打开一个新的 Activity 展示新闻详情。整体上,这个 Fragment 提供了一个流畅的用户体验,让用户能够浏览和探索新闻内容。
定义抽象类实现了一个 RecyclerView 的无缝滚动加载机制,即当用户滚动到列表底部附近时自动加载更多数据的功能。通过监听 RecyclerView 的滚动事件,该 EndlessRecyclerViewScrollListener
抽象类能够判断何时达到了预设的可见项目数量阈值,并在此时触发 onLoadMore
抽象方法来加载下一页数据。它支持多种布局管理器,包括线性、网格和瀑布流布局,确保了无论列表以何种形式展示,都能平滑地实现数据加载的自动化和无缝衔接,提升了用户体验。
AboutFragment
实现了应用的“关于”页面功能,允许用户查看自己的账户名,对应用进行评分,并通过点击不同的文本视图来获取帮助信息、更改密码、检查应用更新或退出应用。它利用了 Android 的共享偏好设置来持久化用户的评分信息,并通过事件监听器来响应用户的交互操作,如评分变化和点击事件。此外,它还提供了显示应用版本号和提供使用说明的功能,增强了用户体验和应用的可用性。
NewsDetailActivity
活动展示了单篇新闻的详细内容,包括标题、图片、来源和文章内容。它通过一个 Presenter 与模型层通信,加载特定的新闻细节,并将这些信息渲染到界面上的相应组件,如 WebView、TextView 和 ImageView。此外,它还提供了一个浮动操作按钮(FloatingActionButton)用于快速分享新闻,以及一个选项菜单项用于标准的分享功能。当用户按下返回键时,活动会以动画效果关闭,提供平滑的用户体验。整体而言,这个活动实现了从获取数据到展示内容再到交互操作的一体化新闻阅读体验。
四、运行演示
Android Studio实现推看App
五、源码获取
以下两种方式都可以获取源代码:
直接点击右侧链接下载源代码 | Android Studio实现推看App |
---|---|
关注公众号《 萌新加油站 》 | 后台回复:推看 |
🚀Android项目专栏有你错过的精彩内容 |
---|
Android Studio实现花店App |
Android Studio实现考试管理系统 |
Android Studio实现饮食搭配系统 |
Android Studio实现美食外卖系统 |
Android Studio实现文艺阅读App |
《寿康宝鉴》原名《不可录》,由印光大师编订而成,既告诫青少年,气血未定之时,不要沉迷于不健康的黄色书刊,以防摧残身体,消磨意志,荒废学业;也提醒世人夫妻生活应按照古德和经典的教诲而有所节制。《寿康宝鉴》阐明了色欲与健康夭寿的利害关系,告诉世人如何长寿和健康,全书分为序题、警训、事证、立誓、戒期、求子、附录等章节,记载了淫欲之害、戒除的格言以及福祸悔过的案例,分析和陈述了持戒的方法、日期以及其中的忌讳。