安卓APP源码和设计报告——仿淘宝水果商城

  1. 项目名称
    仿淘宝水果商城
  2. 项目概述

随着互联网技术地高速发展,计算机进入到每一个人的生活里,从人们的生活方式到整个社会的运转都产生了巨大的变革,而在信息技术发达的今天,互联网的各种娱乐方式都在渗透到人们的生活方式之中,近年来人们生活水平的提高,生活压力的增加,精神生活的空虚,使人们对于精神世界的丰富需求越来越大,因此近年来,电视、电影、音乐等娱乐产业都在飞速发展,而音乐虽然是在人类历史上早就存在的娱乐方式,但在信息技术高速发展的现在,大部分产业都在实现互联网+的概念,而且随着全球数字娱乐业的发展,以及网络传播的快速、高效、便捷,传统的传播方式不能满足人们对于这方面的需求,所以许多传统的产业都在实现数字化。仿淘宝商城的产品展示系统是主要面对用户的产品信息展示,也是用户最终想寻找的信息内容。产品展示系统主要就是将仿淘宝商城中各类产品信息进行实时的发布,用户可以在首页清晰的浏览查询到各类产品信息,而且还提供强大的查询功能。

3、目的与要求

通过一个综合的实例,进一步掌握移动应用程序开发的基本原理和方法,提高基于Android Studio对图形用户界面的设计和开发能力,以及对控件事件处理、数据存储以及网络访问的能力。具体包括如下几个方面:

1)熟练掌握Android开发工具Android Studio的使用。

2)熟练掌握Android线性布局的使用方法,并熟练使用Activity、Fragment、ListView、TextView、Button、EditText、ImageView等视图组件构建具有良好用户体验的App界面。

3)熟练掌握对控件常用事件进行处理的方法。

4)掌握数据存储或网络访问的基本方法。

4、系统实现环境

集成开发环境:Android Studio 3.0及以上

JDK :1.8及以上

Android版本:9.0及以上

Android API:28及以上

5、系统设计与实现

本系统所包含的功能有用户登录、用户注册、首页、分类、发现、搜索等功能。用户登录及注册:初次使用本系统的用户需要注册用户名和密码,登录完成提示您已成功登录后,用户可进入首页浏览商品。首页、分类及发现:用户可以浏览商品,在首页可以搜索所需信息,分类页面有超市,大牌及常用分类。分别是一些日用品,奢侈品及各种电子产品。发现页面是一些水果店铺及水果分类。

登录页面主要代码

btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
if (UIfEmpty.ifEmpty(username, password)) {
Toast.makeText(LoginActivity.this"信息未输入完整", Toast.LENGTH_SHORT).show();
else {
Cursor cursor = db.rawQuery("select username from user where username = ? and password = ?",
new String[]{username, password});
if (cursor.getCount() == 1) {
SharedPreferences.Editor editor = sp.edit();
if (cb_remember.isChecked()) {
editor.putString("username", username);
editor.putString("password", password);
editor.putBoolean("IFCHECK"true);
else {
editor.putBoolean("IFCHECK"false);
}
editor.commit();
startActivity(new Intent(LoginActivity.this, MainActivity.class));
Toast.makeText(LoginActivity.this"登录成功", Toast.LENGTH_SHORT).show();
else {
Toast.makeText(LoginActivity.this"账号或密码错误", Toast.LENGTH_SHORT).show();
}
cursor.close();
}
}
});

注册页面的主要代码

protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initViews();
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
register();
}
});
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
private void initViews() {
DBHelper helper = new DBHelper(this);
db = helper.getWritableDatabase();
btn_register = findViewById(R.id.register_btn_register);
btn_back = findViewById(R.id.register_btn_back);
et_username = findViewById(R.id.register_username);
et_password = findViewById(R.id.register_password);
et_repeat = findViewById(R.id.register_password_again);
}
private void register() {
String userName = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
String passwordAgain = et_repeat.getText().toString().trim();
if (UIfEmpty.ifEmpty(userName, password, passwordAgain)) {
Toast.makeText(RegisterActivity.this"信息未输入完整", Toast.LENGTH_SHORT).show();
else {
if(password.equals(passwordAgain)) {
ContentValues values = new ContentValues();
values.put("username", userName);
values.put("password", password);
long flag = 0;
flag = db.insert("user"null, values);
if(flag == -1) {
Toast.makeText(RegisterActivity.this"账号已被注册", Toast.LENGTH_SHORT).show();
else {
Toast.makeText(RegisterActivity.this"注册成功", Toast.LENGTH_SHORT).show();
onBackPressed();
}
else {
Toast.makeText(RegisterActivity.this"两次输入的密码不一致", Toast.LENGTH_SHORT).show();
}
}
}
}

首页的主要代码

public View initView() {
View view = View.inflate(mContext, R.layout.fragment_homenull);
lv_home = view.findViewById(R.id.lv_home);
ib_top = view.findViewById(R.id.ib_top);
tv_search_home = view.findViewById(R.id.tv_search_home);
tv_message_home = view.findViewById(R.id.tv_message_home);
initListener();
return view;
}
public void initData() {
super.initData();
ArrayList<Goods> goods = new ArrayList<>();
goods.add(new Goods(2, R.drawable.lll"荔枝""海南", 25.00, 99, "水果店"));
goods.add(new Goods(3, R.drawable.computer"电脑""16英寸", 6599.00, 5, "Apple产品京东自营旗舰店"));
goods.add(new Goods(4, R.drawable.ppp"苹果""红富士", 10.00, 19, "华来水果店"));
goods.add(new Goods(5, R.drawable.xxx"香蕉""海南", 15.00, 18, "水果店"));
goods.add(new Goods(7, R.drawable.kouhong" 口红""正红色", 188.00, 1, "化妆品专营店"));
goods.add(new Goods(8, R.drawable.bamai8"跑车""轿车", 180000, 99999999, "BMW旗舰店"));
GoodsListAdapter adapter = new GoodsListAdapter(mContext, goods);
lv_home.setAdapter(adapter);
}

网络连接请求的主要代码
private void initListener() {
ib_top.setOnClickListener(v -> {
lv_home.smoothScrollToPosition(0);
});
tv_search_home.setOnClickListener(v -> {
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setData(Uri.parse("https://www.quanjing.com/feature/design/1517.html"));
startActivity(intent);
});
}

分类页面的主要代码

public View initView() {
View view = View.inflate(mContext, R.layout.type_homenull);
rg_type = view.findViewById(R.id.rg_type);
initFragment();
initListener();
rg_type.check(R.id.rb_commf1);
return view;
}

public void initData() {
super.initData();
}
private void initFragment() {
fragments new ArrayList<>();
fragments.add(new Jdtuijian()); //推荐分类
fragments.add(new JdShoping());
fragments.add(new Guoji());
}

private BaseFragment getFragment(int position) {
if (fragments != null && fragments.size() > 0) {
BaseFragment baseFragment = fragments.get(position);
return baseFragment;
}
return null;
}
private void switchFragment(Fragment fromfragment, BaseFragment nextfragment) {
if (tempFragment != nextfragment) {
tempFragment = nextfragment;
if (nextfragment != null) {
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
if (!nextfragment.isAdded()) {
if (fromfragment != null) {
transaction.hide(fromfragment);
}
transaction.add(R.id.frameLayout_type, nextfragment).commit();
else {
if (fromfragment != null) {
transaction.hide(fromfragment);
}
transaction.show(nextfragment).commit();
}
}
}
}

分类页面中的超市主要代码

public class HomeAdapter2 extends BaseAdapter {
@Override
public int getCount() {
return imagenames2.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("日用百货");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1null);
ImageView iv_icon = view.findViewById(R.id.ic_icon);
TextView tv_name = view.findViewById(R.id.tv_name);
tv_name.setText(imagenames2[position]);
iv_icon.setImageResource(ids2[position]);
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}

分类页面中的推荐分类主要代码

public class HomeAdapter1 extends BaseAdapter {
@Override
public int getCount() {
return imagenames1.length;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("常用分类");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1null);
ImageView iv_icon = (ImageView) view.findViewById(R.id.ic_icon);
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
tv_name.setText(imagenames1[position]);
iv_icon.setImageResource(ids1[position]);
return view;
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}
}

分类页面中的大牌主要代码

public View initView() {
View view = View.inflate(mContext, R.layout.type_gridnull);
gridview_jd_r1 = view.findViewById(R.id.gridview_jd_r1);
tv_jd_commr1 = view.findViewById(R.id.tv_jd_commr1);
gridview_jd_r1.setAdapter(new HomeAdapter3());
return view;
}
public void initData() {
super.initData();
}
public class HomeAdapter3 extends BaseAdapter {
@Override
public int getCount() {
return imagenames3.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("大牌区");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1null);
ImageView iv_icon = (ImageView) view.findViewById(R.id.ic_icon);
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
tv_name.setText(imagenames3[position]);
iv_icon.setImageResource(ids3[position]);
return view;
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}
}

发现页面的主要代码

public class CommunityFragment extends BaseFragment {
private ListView shop_list;
@Override
public View initView() {
View view = View.inflate(mContext, R.layout.fragment_communitynull);
shop_list = view.findViewById(R.id.shop_list);
return view;
}
public void initData() {
super.initData();
ArrayList<Shop> shops = new ArrayList<>();
Goods s1_goods1 = new Goods(R.drawable.ppp"苹果", 10.00);
Goods s1_goods2 = new Goods(R.drawable.xxx"香蕉", 15.00);
Goods s1_goods3 = new Goods(R.drawable.lll"荔枝", 25.00);
shops.add(new Shop(R.drawable.mi"华来水果店", s1_goods1, s1_goods2, s1_goods3));

Goods s2_goods1 = new Goods(R.drawable.bao"菠萝", 56.00);
Goods s2_goods2 = new Goods(R.drawable.yezi"椰子", 33.00);
Goods s2_goods3 = new Goods(R.drawable.mangguo"特大芒果", 26.00);
shops.add(new Shop(R.drawable.mangguo"海南特产水果", s2_goods1, s2_goods2, s2_goods3));
ShopListAdapter adapter = new ShopListAdapter(mContext, shops);
shop_list.setAdapter(adapter);
}
}

  1. 系统运行结果


图1图2
图1:首页页面,有几种商品的图片名称价格及商铺,还有用户评价及好评率,
还有搜索入口。
图2:分类页面,其中的品牌区,一些大牌商品,让用户挑选。


图3 图4
图3:分类页面的超市一栏,有一些日用百货,图书、零食、牛奶等
图4:分类页面的推荐分类一栏,推荐一些常用分类,充电宝、空调、口红、平板电脑、眼影、手机等


图5 图6
图5:发现页面,有一些水果店铺及一些商品的价格、名称等
图6:搜索的商品分类。


图7 图8
图7:注册页面
图8:登录页面

  1. 实验总结

对于本次仿淘宝商城系统的设计与实现,更加了解了移动应用开发程序的基本原理和方法,提高基于Android Studio对图形用户界面的设计和开发能力,以及对控件事件处理、数据存储以及网络访问的能力。通过本次实验,我成功的完成了实验内容。学会了使用Android中的一些控件去创建应用程序。我学会了基本布局的用法,自定义控件的方法,并了解了ListView及Fragment的详细用法,以及Android中单位的选择和使用,已经基本掌握了UI的相关知识。但是实验过程中还是遇到了一些问题的,我对布局的理解和应用还不是很清晰,而且感觉使用HTTP请求也很复杂很难,对它的使用的掌握仍需继续努力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2255.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对标ChatGPT3.5,支持手机电脑网页使用,无需魔法

说到 Claude 是什么&#xff0c;大家可能没听说过。 但是说到 OpenAI&#xff0c;说到 ChatGPT&#xff0c;相信大家一定听说过&#xff0c;玩过。 PS&#xff1a;关于 Claude 网页版的注册教程&#xff0c;我之前已经写过文章了&#xff0c;现在额外介绍如何使用手机App和电脑…

安卓调试|一文归纳总结adb调试工具常规命令

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; “ 花开堪折直须折&#xff0c;莫待无花空折枝。 ” 作者主页&#xff1a;[ https://www.weiyigeek.top ] 博客&…

安卓APP源码和报告——学生信息管理系统

学生信息管理系统APP演示视频 《移动开发技术II》实践考核方案 适用网络工程&#xff08;网络软件开发&#xff09;2018级 一、考核内容&#xff1a; 环境配置及移动开发生命周期、控件的使用、用户界面设计、数据存储与访问、广播、服务、网络编程、蓝牙应用等知识点。 二…

hnust 湖南科技大学 2023 安卓 期中考试 复习资料

前言 ★&#xff1a;录音中提到的✦&#xff1a;推测考点致谢&#xff1a;hwl&#xff0c;lqx&#xff0c;ly&#xff0c;sw重点来源&#xff1a;7-8班 PPT和录音内容来源&#xff1a;PPT知识点大多很抽象&#xff0c;需要联系实际代码来理解多做1-9章课后习题&#xff0c;编程…

chatgpt API key 获取及延续

目录 问题描述API key 获取API key 延续注册虚拟卡虚拟卡绑定openAI 账户虚拟卡注销参考链接 问题描述 chatgpt目前已被很多人作为辅助工具&#xff0c;使用openai开放的api进行请求与应用chatgpt成为一种十分便利的操作 API key 获取 网址&#xff1a;https://openai.com/p…

安卓期末大作业——图书信息管理系统

前言 随着信息技术的高速发展&#xff0c;科技逐渐走进各行各业&#xff0c;帮助人们快速、便利地完成一些工作。BMS系统是基于Android移动设备的应用软件&#xff0c;该系统能够帮助用户在家里通过手机查看相应图书馆的馆藏情况&#xff0c;而不用到图书馆中查找。同时该系统…

安卓APP源码和设计报告——麻雀笔记

目录 一 安卓应用程序开发背景3 1.1开发背景3 1.2开发环境4 二 安卓应用程序开发理论与方法4 三 记事本应用程序的设计与实现5 3.1 拟解决的问题及目标5 3.2 总体设计6 3.3 详细设计与编码实现6 四 总结23 一 安卓应用程序开发背景 1.1开发背景 1.智能手机的市场 …

安卓APP源码和设计报告——好再来点餐

大作业文档 项目名称&#xff1a;好再来点餐专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a; 目 录 一、项目功能介绍3 二、项目运行环境3 1、开发环境3 2、运行环境3 3、是否需要联网3 三、项目配置文件及工程结构3 1、工程配置文件3 2、工程结构…

来打卡!吴恩达3门AI新课;我用AI出版97本书;如何在创业小厂做技术领导;手把手教你用SD写好提示词 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 「讯飞听见会写」开放内测申请&#xff0c;基于AI的文件内容处理 「讯飞听见会写」是讯飞「星火认知大模型」的个人示范应用产品&…

安卓APP源码和设计报告——基于Android的垃圾分类系统

《移动应用开发》大作业报告 题 目基于Android的垃圾分类系统系 部班 级学 生 姓 名学 号指 导 教 师时 间 1、项目名称 垃圾分类系统 2、项目概述 近些年&#xff0c;由于人民生活水平是的提高&#xff0c;生活方式与生活节奏的加快&#xff0c;使我国的垃圾生产数量已远…

安卓期末大作业——购物商城(源码+18页报告)

Android系统原理及应用报告 题 目&#xff1a; 学 号&#xff1a; 班 级&#xff1a; 姓 名&#xff1a; 完成时间 报告要求须知 项目报告按照实践开发实际情况编写&#xff0c;着重工程项目的需求分析、系统功能分析及模块图、数据库及E-…

安卓APP源码和报告——音乐播放器

课 程 设 计 报 告 院 系&#xff1a;专 业&#xff1a;题 目&#xff1a;科 目&#xff1a;学 生&#xff1a;指导教师&#xff1a;完成时间&#xff1a; 目 录 1. 引言1 1.1 目的1 1.2 背景1 2. 需求分析1 3. 系统设计1 3.1总体设计1 3.2功能设计1 4. 系统开发2 4.1…

【AIGC使用教程】Notion AI 从注册到体验:如何免费使用

欢迎关注【AIGC使用教程】 专栏 【AIGC使用教程】SciSpace 论文阅读神器 【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用 【AIGC使用教程】GitHub Copilot 免费注册及在 PyCharm 中的安装使用 …

体验不了ChatGPT?来试试POE桌面版!

POE Poe App目前备受欢迎&#xff0c;许多用户已开始使用加入ChatGPT API后引入的聊天机器人。最早在App Store推出&#xff0c;目前Poe App还没有推出针对Android用户的版本&#xff0c;但今天poe.com推出了桌面版&#xff0c;Android用户也可以通过桌面浏览器使用ChatGPT。需…

推特、微博对手Threads软件的下载、注册、使用最新超详细教程

经过马斯克不断折腾&#xff0c;推特面临用户大量流失的风险&#xff0c;尤其近期限制推文阅读量&#xff0c;更是导致大量用户出走。 于是乎&#xff0c;Meta公司7月6日正式发布对标推特的新社交平台 Threads&#xff0c;当前Threads只能在 iOS、Android 平台上安装 APP 使用&…

【ChatGPT+MindShow高效生成PPT,保姆级安装教程】

&#x1f680; AI破局先行者 &#x1f680; &#x1f332; AI工具、AI绘图、AI专栏 &#x1f340; &#x1f332; 如果你想学到最前沿、最火爆的技术&#xff0c;赶快加入吧✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域优质创作者&#x1f3c6;&am…

安卓期末大作业——日记APP

2022/2023 学年 第 一 学期 课程设计 实验报告 模 块 名 称 Android课程设计 专 业 通信工程&#xff08;嵌入式培养&#xff09; 学 生 班 级 学 生 学 号 学 生 姓 名 指 导 教 师 设计题目熟悉adt-bundle-windows-x86或android-studio-ide应用开发环境&#xff1a;安…

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发&#xff08;目前版本V1.1.7&#xff09; 授权方式&#xff1a;三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代&#xff08;markdown输出&#xff09;PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

制作自己的ChatGPT

Feb 11, 20235 min read 推荐&#xff1a;使用 NSDT场景设计器 快速搭建 3D场景。 众所周知&#xff0c;ChatGPT 目前能够取得令人印象深刻的壮举。 很可能许多人都有在他们自己的项目中使用该技术的想法。 不过需要注意的是&#xff0c;ChatGPT 目前并没有官方的 API。 使用非…

【ChatGPT】教你搭建多任务模型

ChatGPT教你搭建多任务模型 You: tell me what’s your version of gpt ? ChatGPT: As an AI language model developed by OpenAI, I am based on the GPT (Generative Pretrained Transformer) architecture. However, my version is known as GPT-3.5, which is an updat…