安卓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、系统设计与实现

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

登录页面主要代码

3a268f744af619e905c95338dac6f8b9.jpeg

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();
}
}
});

注册页面的主要代码

f446eae963fef733617182d80c23e410.jpeg

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();
}
}
}
}

首页的主要代码

dbfa3d1ced91b669dddda662cf7ddab4.jpeg

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

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

分类页面的主要代码

ead26bad4dc76d0ddf46b60d7479c4e8.jpeg

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

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

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

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

public class&nbsp;HomeAdapter2&nbsp;extends&nbsp;BaseAdapter {
@Override
public int&nbsp;getCount() {
return imagenames2.length;
}
@Override
public&nbsp;View getView(int&nbsp;position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("日用百货");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1,&nbsp;null);
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&nbsp;view;
}
@Override
public&nbsp;Object getItem(int&nbsp;position) {
return null;
}
@Override
public long&nbsp;getItemId(int&nbsp;position) {
return&nbsp;0;
}
}

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

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

@Override
public&nbsp;View getView(int&nbsp;position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("常用分类");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1,&nbsp;null);
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&nbsp;view;
}

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

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

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

public&nbsp;View initView() {
View view = View.inflate(mContext, R.layout.type_grid,&nbsp;null);
gridview_jd_r1&nbsp;= view.findViewById(R.id.gridview_jd_r1);
tv_jd_commr1&nbsp;= view.findViewById(R.id.tv_jd_commr1);
gridview_jd_r1.setAdapter(new&nbsp;HomeAdapter3());
return&nbsp;view;
}
public void&nbsp;initData() {
super.initData();
}
public class&nbsp;HomeAdapter3&nbsp;extends&nbsp;BaseAdapter {
@Override
public int&nbsp;getCount() {
return imagenames3.length;
}
@Override
public&nbsp;View getView(int&nbsp;position, View convertView, ViewGroup parent) {
tv_jd_commr1.setText("大牌区");
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.type_grid_item1,&nbsp;null);
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&nbsp;view;
}

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

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

发现页面的主要代码

b9c7c3bc57cdd59219c678a6209a98bf.jpeg

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

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

  1. 系统运行结果

35f567e87e9f3a0db1562a2b53efd8b9.jpeg 5a56573646a059b19d5d6dd90d16cc59.jpeg


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

7f6579160bdda11d0d3d5b05af3cf9d2.jpeg e1584d14da3360752565526d875cab69.jpeg


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

1fb91ad52f0cc7861c82a6bca138d5e9.jpeg da4f55ca7f4536dcbeff61cad0f8141e.jpeg


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

e3082b940fb9235e8171344096ea47e3.jpeg c9af99197c27b9bcb3677a2accf39b81.jpeg



  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值