当前位置: 首页 > news >正文

网络资源模板--Android Studio 实现简易新闻App

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码 


一、项目演示

网络资源模板--基于Android studio 实现的简易新闻App

二、项目测试环境

三、项目详情

登录页

  1. 用户输入

    • 提供账号和密码输入框,用户可以输入登录信息。
    • 支持“记住账号”功能,通过复选框保存用户的输入。
  2. 记住账号功能

    • 如果用户选择记住账号,登录信息会保存在本地(使用类)。
  3. 登录逻辑

    • 在用户点击登录按钮后,首先检查输入的账号和密码是否为空。
    • 调用数据库检查输入的账号和密码是否匹配。
    • 登录成功后,跳转到主界面 MainActivity,并结束当前活动;登录失败时,显示提示信息。
  4. 注册跳转

    • 用户可以通过点击“注册”链接跳转到注册界面 RegisterActivity
  5. UI 交互

    • 复选框状态改变时,更新文本颜色。
    • 提供友好的错误提示(如账号或密码为空、登录失败等)。

 private void init() {// 找到 UI 组件this.mAccount = (EditText) findViewById(R.id.edit_login_phone);this.mPassword = (EditText) findViewById(R.id.edit_login_password);this.mRemember = (CheckBox) findViewById(R.id.check_login_remember);// 加载记住的账号和密码if (SharePreferenceUtils.getRemember(this)) {this.mRemember.setChecked(true);if (SharePreferenceUtils.getPhone(this) != null) {this.mAccount.setText(SharePreferenceUtils.getPhone(this));}if (SharePreferenceUtils.getPassword(this) != null) {this.mPassword.setText(SharePreferenceUtils.getPassword(this));}}// 设置复选框的改变监听器this.mRemember.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {// 根据复选框状态改变文本颜色if (isChecked) {LoginActivity.this.mRemember.setTextColor(ContextCompat.getColor(LoginActivity.this, R.color.colorPrimary));} else {LoginActivity.this.mRemember.setTextColor(ContextCompat.getColor(LoginActivity.this, R.color.color_word1));}}});// 设置点击事件监听器findViewById(R.id.tv_login).setOnClickListener(this);findViewById(R.id.tv_login_goRegister).setOnClickListener(this);}

注册页

  1. 用户输入

    • 提供账号、密码和确认密码的输入框,用户可以输入注册信息。
  2. 输入验证

    • 验证用户输入的手机号、密码是否为空。
    • 检查确认密码与输入密码是否一致。
    • 确认账号是否已被注册。
  3. 注册逻辑

    • 如果验证通过,将用户信息(账号和密码)插入数据库。
    • 注册成功后,显示成功提示并跳转到主界面 MainActivity,同时结束登录活动和当前注册活动。
    • 也会在本地保存用户手机号。
  4. 数据库操作

    • 使用 MyDBHelper 类管理 SQLite 数据库。
    • 通过 Cursor 检查账号是否已存在于数据库中。
  5. 界面交互

    • 使用 Toast 显示各类提示信息(如输入错误、注册成功等)。
    • 支持返回操作,结束当前活动。
  public boolean CheckIsDataAlreadyInDBorNot(String str) {Cursor rawQuery = this.dbHelper.getWritableDatabase().rawQuery("Select * from userData where name =?", new String[]{str});if (rawQuery.getCount() > 0) {rawQuery.close(); // 关闭游标return true; // 账号已存在}rawQuery.close(); // 关闭游标return false; // 账号不存在}

首页

  1. 输入转换

    • 根据给定的标题字符串,返回对应的整型常量,表示不同类型的新闻。
  2. 类型映射

    • 每个特定的标题(如“社会新闻”、“科技新闻”等)映射到一个预定义的常量(如 ITEM_SOCIETYITEM_TECHNOLOGY 等)。
  3. 默认返回值

    • 如果输入标题不匹配任何预定义选项,默认返回 ITEM_SOCIETY。 
 // 将标题转换为对应的类型private int parseString(String title) {switch (title) {case "社会新闻":return ITEM_SOCIETY;case "国内新闻":return ITEM_COUNTY;case "国际新闻":return ITEM_INTERNATION;case "娱乐新闻":return ITEM_FUN;case "体育新闻":return ITEM_SPORT;case "NBA新闻":return ITEM_NBA;case "足球新闻":return ITEM_FOOTBALL;case "科技新闻":return ITEM_TECHNOLOGY;case "创业新闻":return ITEM_WORK;case "苹果新闻":return ITEM_APPLE;case "军事新闻":return 11;case "移动互联":return 12;case "旅游资讯":return 13;case "健康知识":return ITEM_HEALTH;case "奇闻异事":return ITEM_STRANGE;case "美女图片":return ITEM_LOOKER;case "VR科技":return ITEM_VR;case "IT资讯":return ITEM_IT;default:return ITEM_SOCIETY;}}

我的页面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="180.0dip"android:background="@color/colorPrimary"android:padding="10.0dip"><de.hdodenhof.circleimageview.CircleImageViewandroid:id="@+id/icon_image"android:layout_width="80.0dip"android:layout_height="80.0dip"android:layout_centerInParent="true"android:scaleX="0.9"android:scaleY="0.9"android:src="@drawable/graph" /><TextViewandroid:id="@+id/username"android:layout_width="384.0dip"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_marginBottom="7.0dip"android:textColor="@color/white"android:textSize="14.0sp" /><TextViewandroid:id="@+id/mail"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_above="@id/username"android:layout_marginEnd="38.0dip"android:layout_marginBottom="2.0dip"android:layout_toStartOf="@id/icon_image"android:textColor="@color/white"android:textSize="14.0sp" />
</RelativeLayout>

新闻详情页

  1. 界面设置

    • 设置自定义工具栏(Toolbar)并启用返回按钮。
  2. WebView 初始化

    • 创建并配置 WebView,启用 JavaScript 支持。
    • 设置 WebViewClient,使网页在应用内加载,而非外部浏览器。
  3. 接收数据

    • 从意图(Intent)中获取要加载的 URL 和标题。
  4. 加载网页

    • 使用 WebView 加载指定的 URL,并在工具栏中显示网页标题。
  5. 返回操作

    • 实现返回按钮的点击事件,结束当前活动并返回到前一个活动。

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@color/color_White"><com.google.android.material.appbar.AppBarLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"><androidx.appcompat.widget.Toolbarandroid:id="@id/tool_bar"android:layout_width="fill_parent"android:layout_height="?actionBarSize"app:layout_scrollFlags="enterAlways|scroll|snap"app:theme="@style/ThemeOverlay.AppCompat.Light"app:titleTextColor="@color/color_White" /></com.google.android.material.appbar.AppBarLayout><WebViewandroid:id="@+id/web_view"android:layout_width="fill_parent"android:layout_height="fill_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

四、完整的项目源码 

👇👇👇👇👇快捷获取方式👇👇👇👇👇

相关文章:

网络资源模板--Android Studio 实现简易新闻App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易新闻App 二、项目测试环境 三、项目详情 登录页 用户输入&#xff1a; 提供账号和密码输入框&#xff0c;用户可以输入登录信息。支持“记…...

LabVIEW提高开发效率技巧----离线调试

离线调试是LabVIEW开发中一项重要的技巧&#xff0c;通过使用Simulate Signal Express VI生成虚拟数据&#xff0c;开发者能够有效减少对实际硬件的依赖&#xff0c;加速开发过程。这种方法不仅可以提高开发效率&#xff0c;还能降低成本&#xff0c;增强系统的灵活性。 ​ 离…...

6N137S1取反电路图

文章目录 一、前言二、6N137S1性能介绍三、应用电路图 一、前言 在硬件电路设计中需要用到隔离电路&#xff0c;但此引脚输出为WS2812的信号&#xff0c;频率有840khz&#xff0c;所以需要使用逻辑光耦&#xff0c;选用6N137S1光耦&#xff0c;速率能达到10Mhz&#xff0c;能满…...

Nullinux:一款针对Linux操作系统的安全检测工具

关于Nullinux Nullinux是一款针对Linux操作系统的安全检测工具&#xff0c;广大研究人员可以利用该工具针对Linux目标设备执行网络侦查和安全检测。 该工具可以通过SMB枚举目标设备的安全状况信息&#xff0c;其中包括操作系统信息、域信息、共享信息、目录信息和用户信息。如…...

学会这 5 个 AI 神器做字体设计,保证让你私单接到爆!

最近我在浏览 AI 绘画的相关内容时&#xff0c;发现不少图像都是与字体相关的&#xff0c;而且其中一些呈现出的艺术特效很是让人眼前一亮。 放在之前&#xff0c;我们需要掌握一些专业技能、并花费大量时间才能设计出精致酷炫的艺术字&#xff0c;但是现在却可以轻松用文本直…...

《Vue3 踩坑》expose 和 defineExpose 暴露属性或方法注意事项

选项式写法 使用 选项式API - 状态选项 - expose 一定要注意&#xff1a; 接下来&#xff0c;进一步看示例说明&#xff1a; 设置 expose 仅显示列出的属性/方法才能被父组件调用&#xff1b;代码第 2 行&#xff0c;父组件可访问属性 a 和 方法 myFunc01&#xff0c;不可访…...

10.13论文阅读

通过联合学习检测和描述关键点增强可变形局部特征 摘要 局部特征提取是计算机视觉中处理图像匹配和检索等关键任务的常用方法。大多数方法的核心理念是图像经历仿射变换&#xff0c;忽略了诸如非刚性形变等更复杂的效果。此外&#xff0c;针对非刚性对应的新兴工作仍然依赖于…...

六西格玛黑带项目:TBX-02无人机飞行稳定性提升——张驰咨询

一、项目背景与问题定义 TBX-02是该公司最新发布的消费级无人机&#xff0c;面向摄影爱好者和户外探险者。产品上市后&#xff0c;通过客户反馈和实际测试数据发现&#xff0c;该无人机在复杂飞行环境中&#xff0c;如强风或快速移动时&#xff0c;存在明显的飞行抖动和稳定性…...

git clone 国内镜像

比如 git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git 改成 git clone https://gitclone.com/github.com/HKUST-Aerial-Robotics/A-LOAM.git...

【服务器虚拟化】

服务器虚拟化是一种将一台物理服务器划分为多个虚拟服务器的技术&#xff0c;每个虚拟服务器都可以独立运行操作系统和应用程序。下面是一个详细的教程&#xff0c;以KVM虚拟化为例&#xff0c;介绍了具体的操作步骤和执行命令。 准备工作 a. 确保你的服务器支持虚拟化技术&…...

【RAG】aiops第一名方案-EasyRAG:自动网络运营的高效检索增强生成框架

来看一个RAG比赛方案&#xff0c;提出了一个名为EasyRAG的框架&#xff0c;用于自动化网络操作的检索增强生成。该框架旨在解决网络操作中信息检索和生成效率低、准确性差的问题。研究难点包括&#xff1a;如何在保证准确性的前提下提高检索和生成的效率&#xff1b;如何实现简…...

3款备受好评的电脑数据恢复软件,赶紧收藏以备不时之需

在日常工作和生活中&#xff0c;电脑数据丢失是许多人都会遇到的问题。无论是误删文件、硬盘格式化&#xff0c;还是系统崩溃&#xff0c;都可能导致重要数据的丢失。所以&#xff0c;好用的数据恢复软件必不可少。 但在如今的市场上数据恢复软件琳琅满目&#xff0c;它们在恢复…...

.net core 实现多线程方式有哪些

在 .NET Core 中&#xff0c;有多种方式可以实现多线程编程。这些方式包括使用 Thread 类、Task 和 Parallel 类库。每种方法都有其适用场景和优缺点。下面我将通过代码示例来展示这些不同的多线程实现方式。 1. 使用 Thread 类 Thread 类是 .NET 中最基本的多线程实现方式。…...

《Linux从小白到高手》综合应用篇:深入理解Linux磁盘及IO优化

1. 前言 其实磁盘优化和IO优化&#xff0c;我在前面的其他Linux调优博文中已经讲述过或者涉及过了&#xff0c;但是太过零碎&#xff0c;所以本篇就来集中深入讨论下Linux磁盘和IO调优。 2.磁盘调优 结合我多年的经验&#xff0c;本人认为磁盘调优最重要的是读写性能的提升和…...

【Linux】内存文件系统的I/O、重定向

文章目录 1. 系统中的文件2. 回顾C中的文件接口3. 文件类的系统调用3.1 open3.2 文件描述符 4. IO的基本过程5.重定向5.1 引入重定向5.2 系统中的重定向接口 6. 缓冲区问题7. 简单版shell的实现 1. 系统中的文件 在学习完Linux权限后&#xff0c;我们清楚的知道&#xff1a;文…...

力扣10.18

1463. 摘樱桃 II 给你一个 rows x cols 的矩阵 grid 来表示一块樱桃地。 grid 中每个格子的数字表示你能获得的樱桃数目。 你有两个机器人帮你收集樱桃&#xff0c;机器人 1 从左上角格子 (0,0) 出发&#xff0c;机器人 2 从右上角格子 (0, cols-1) 出发。 请你按照如下规则…...

cs木马图形化界面出现问题处理

一个月多月没用cs木马了&#xff0c;发现打开客户端之后显示不出图形化界面&#xff0c;且出现下面这样的报错。 、 最后发现是java版本的问题&#xff0c;kali的java自动更新了。把原来的openjdk11改到了openjdk23。 解决方法&#xff1a; 输入&#xff1a; sudo update-…...

数据结构与算法 - 树 #数的概念 #二叉树 #堆 - 堆的实现/堆排序/TOP-K问题

文章目录 前言 一、树 (一)、概念 1、树的定义 (二)、树的定义 1、树为什么是递归定义的&#xff1f; 2、如何定义树(如何表达一棵树) 解决方案一&#xff1a;假设我们得知该树的度 解决方案二&#xff1a;顺序表 解决方案三&#xff1a;左孩子右兄弟表示法 二、二叉…...

Git推送被拒

今天开发完成一个新的需求&#xff0c;将自己的分支合并到test分支后&#xff0c;推送到远程仓库&#xff0c;结果显示推送被拒&#xff1a; 原因是因为有人更新了test分支的代码&#xff0c;我在合并之前没有拉取最新的test分支代码&#xff0c;所以他提示我“推送前需要合并…...

Jmeter进行http接口测试

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 本文主要针对http接口进行测试&#xff0c;使用jmeter工具实现。 Jmeter工具设计之初是用于做性能测试的&#xff0c;它在实现对各种接口的调用方面已经做的比较…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...