目录、

​​​​​​​一,项目介绍:

二,项目功能介绍:

1新手引导界面

2健康饮食搭配主页

3食物搭配表

4 食物营养表

5本软件介绍←​编辑

三,核心代码

(1)首页Mactivity核心代码

(2)食物搭配表

(3)食物营养表

(4)本软件介绍

​​​​​​​四,项目的源码+word+功能截图


一,项目介绍:

用户通过下载应用程序,进入应用程序可以在程序中浏览各种食物的搭配,如果是首次登录则会进入一个新手引导界面,引导选项都选择完成后则进入。

进入后有三个功能:第1个是健康饮食搭配表,查看各种食物的饮食搭配;第2个是事物营养表,查看即将发布的食物饮食详情;第3个是关于本软件的介绍,主要是有个轮播图展示,还有作者的详细信息。

二,项目功能介绍:

1新手引导界面

2健康饮食搭配主页

3食物搭配表

图6.3.1-所述←
这里是采用线性布局的查询食物列表,通过上面的搜索栏,搜索想要查询的食物名称

4 食物营养表


 图6.4-所述
点击食物营养表,则进入网格布局的即将发布食物介绍←

图6.4.2-所述←.
这里是鸡肉的详情,还有鸡肉不能和那些食物搭配←

6.5本软件介绍←

三,核心代码

(1)首页Mactivity核心代码

package com.animee.health.guide;import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;import com.animee.health.HomeMenuActivity;
import com.animee.health.R;/*** (1)启动器*/
public class MainActivity extends AppCompatActivity {TextView tv;int time = 5;SharedPreferences preferences;  //存储键值对数据private SharedPreferences.Editor editor;@SuppressLint("HandlerLeak")Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {if (msg.what==1) {time--;if (time ==0) {//  跳转页面Intent intent = new Intent();boolean isfirst = preferences.getBoolean("isfirst", true);if (isfirst) {intent.setClass(MainActivity.this,GuideActivity.class);editor.putBoolean("isfirst",false);  //写入不是第一次进入的纪录editor.commit();    // 提交本次修改纪录}else {intent.setClass(MainActivity.this,HomeMenuActivity.class);}startActivity(intent);finish();}else {tv.setText(time+"");handler.sendEmptyMessageDelayed(1,1000);}}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main_01);tv = findViewById(R.id.main_tv);preferences = getSharedPreferences("health_pref",MODE_PRIVATE);editor = preferences.edit(); //写入数据的对象handler.sendEmptyMessageDelayed(1,1000);}
}

activity_home_menu_01.xml

<?xml version="1.0" encoding="utf-8"?>
<!--(1)菜单首页-->
<!--采用:线性布局-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".HomeMenuActivity"android:background="@mipmap/home_page"android:orientation="vertical"android:padding="20dp"><Buttonandroid:id="@+id/home_btn1"android:layout_width="match_parent"android:layout_height="70dp"android:background="@mipmap/btn_food_list"android:layout_marginTop="180dp"android:onClick="onClick"/><Buttonandroid:id="@+id/home_btn2"android:layout_width="match_parent"android:layout_height="70dp"android:background="@mipmap/btn_food_nutriction"android:layout_marginTop="40dp"android:onClick="onClick"/><Buttonandroid:id="@+id/home_btn3"android:layout_width="match_parent"android:layout_height="70dp"android:background="@mipmap/btn_food_about"android:layout_marginTop="40dp"android:onClick="onClick"/>
</LinearLayout>

(2)食物搭配表

package com.animee.health.food_list;import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;import com.animee.health.R;
import com.animee.health.bean.FoodBean;
import com.animee.health.bean.FoodSQLite;
import com.animee.health.bean.FoodUtils;
import com.animee.health.food_grid.FoodDescActivity;import java.util.ArrayList;
import java.util.List;/*** (2)菜单功能:食物搭配表--食物搜索页*/
public class InfoListActivity extends AppCompatActivity implements View.OnClickListener{EditText searchEt;ImageView searchIv,flushIv;ListView showLv;
//    ListView内部数据源List<FoodBean>mDatas;List<FoodBean>allFoodList;private InfoListAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_info_list_02);
//        查找控件initView();
//        2.找到ListView对应的数据源mDatas = new ArrayList<>();allFoodList = FoodUtils.getAllFoodList();// FoodUtils:食物搭配表--食物搜索页mDatas.addAll(allFoodList);
//        3.创建适配器  BaseAdapter的子类adapter = new InfoListAdapter(this, mDatas);showLv.setAdapter(adapter); //4.设置适配器
//        设置单向点击监听功能setListener();}private void setListener() {showLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {FoodBean foodBean = mDatas.get(position);Intent intent = new Intent(InfoListActivity.this, FoodDescActivity.class);intent.putExtra("food",foodBean);startActivity(intent);}});}private void initView() {searchEt = findViewById(R.id.info_et_search);searchIv = findViewById(R.id.info_iv_search);flushIv = findViewById(R.id.info_iv_flush);showLv = findViewById(R.id.infolist_lv);searchIv.setOnClickListener(this); //添加点击事件的监听器flushIv.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.info_iv_flush:  //刷新点击searchEt.setText("");mDatas.clear();mDatas.addAll(allFoodList);adapter.notifyDataSetChanged();break;case R.id.info_iv_search:  //搜索点击
//                1.获取输入内容,判断不为空String msg = searchEt.getText().toString().trim();  //获取输入信息if (TextUtils.isEmpty(msg)) {Toast.makeText(this,"输入内容不能为空!",Toast.LENGTH_SHORT).show();return;}
//                判断所有食物列表的标题是否包含输入内容,如果包含,就添加到小集合中List<FoodBean>list = new ArrayList<>();for (int i = 0; i < allFoodList.size(); i++) {String title = allFoodList.get(i).getTitle();if (title.contains(msg)) {list.add(allFoodList.get(i));}}mDatas.clear();   // 清空ListView的适配器数据源内容mDatas.addAll(list);  // 添加新的数据到数据源中adapter.notifyDataSetChanged(); // 提示适配器更新break;}}
}

activity_info_list_02.xml

<?xml version="1.0" encoding="utf-8"?>
<!--(2)菜单功能:食物搭配表————食物搜索页-->
<!--采用:线性布局-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".food_list.InfoListActivity"><!--采用:相对布局--><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="60dp"android:padding="10dp"android:background="@mipmap/search_background"><ImageViewandroid:id="@+id/info_iv_flush"android:layout_width="wrap_content"android:src="@mipmap/clear_btn"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/info_iv_search"android:src="@mipmap/search_btn"android:layout_toLeftOf="@id/info_iv_flush"android:layout_width="wrap_content"android:layout_centerVertical="true"android:layout_marginRight="20dp"android:layout_marginLeft="20dp"android:layout_height="wrap_content" /><EditTextandroid:id="@+id/info_et_search"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_toLeftOf="@id/info_iv_search"android:paddingLeft="20dp"android:background="@drawable/info_et_bg_02"android:layout_centerVertical="true"android:textColor="@color/white"/></RelativeLayout><ListViewandroid:id="@+id/infolist_lv"android:layout_width="match_parent"android:layout_height="match_parent"android:divider="@color/dividerColor"android:dividerHeight="1dp"></ListView>
</LinearLayout>

(3)食物营养表

package com.animee.health.food_grid;import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;import com.animee.health.R;
import com.animee.health.bean.FoodBean;/*** (3)菜单功能:食物营养表--食物内容*/
public class FoodDescActivity extends AppCompatActivity {TextView titleTv1,titleTv2,descTv,notTv;ImageView backIv,bigPicIv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_food_desc_03);initView();
//        接受上一级页面传来的数据Intent intent = getIntent();FoodBean foodBean = (FoodBean) intent.getSerializableExtra("food");
//        设置显示控件titleTv1.setText(foodBean.getTitle());titleTv2.setText(foodBean.getTitle());descTv.setText(foodBean.getDesc());notTv.setText(foodBean.getNotmatch());bigPicIv.setImageResource(foodBean.getPicId());}private void initView() {titleTv1 = findViewById(R.id.fooddesc_tv_title1);titleTv2 = findViewById(R.id.fooddesc_tv_title2);descTv = findViewById(R.id.fooddesc_tv_desc);notTv = findViewById(R.id.fooddesc_tv_not);backIv = findViewById(R.id.fooddesc_iv_back);bigPicIv = findViewById(R.id.fooddesc_iv_bigpic);backIv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish();   //销毁当前的activity}});}
}

activity_food_grid_03.xml

<?xml version="1.0" encoding="utf-8"?>
<!--(3)菜单功能:食物营养表__食物内容-->
<!--采用:网格布局-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".food_grid.FoodGridActivity"><RelativeLayoutandroid:id="@+id/food_grid_layout"android:layout_width="match_parent"android:layout_height="60dp"android:background="@mipmap/search_background"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="健康饮食"android:textSize="20sp"android:textStyle="bold"android:textColor="@color/white"/></RelativeLayout><GridViewandroid:id="@+id/food_grid_gv"android:layout_width="match_parent"android:layout_height="match_parent"android:numColumns="2"></GridView>
</LinearLayout>

(4)本软件介绍

package com.animee.health;import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import java.util.ArrayList;
import java.util.List;/*** (4)软件版本说明*/
public class AboutActivity extends AppCompatActivity implements View.OnClickListener{ViewPager aboutVp;TextView shareTv;LinearLayout pointLayout;List<View>viewList;   //ViewPager的数据源int[]picIds = {R.mipmap.ab1,R.mipmap.ab2,R.mipmap.ab3,R.mipmap.ab4,R.mipmap.ab5};private AboutAdapter adapter;List<ImageView>pointList;   //存放显示器小点点的集合/*** 轮播图的轮播*/@SuppressLint("HandlerLeak")Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {if (msg.what == 1) {
//                接收到消息之后,需要使ViewPager页面向下滑动一页int currentItem = aboutVp.getCurrentItem();aboutVp.setCurrentItem(currentItem+1);handler.sendEmptyMessageDelayed(1,5000);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_about_04);//设置当前版本aboutVp = findViewById(R.id.about_vp);shareTv = findViewById(R.id.about_tv_share);pointLayout = findViewById(R.id.about_layout_point);shareTv.setOnClickListener(this);viewList = new ArrayList<>();pointList = new ArrayList<>();
//        初始化ViewPager的页面信息for (int i = 0; i < picIds.length; i++) {View view = LayoutInflater.from(this).inflate(R.layout.item_aboutvp_04,null);ImageView iv = view.findViewById(R.id.item_aboutvp_iv);iv.setImageResource(picIds[i]);viewList.add(view);
//            创建指示器内容ImageView pointIv = new ImageView(this);
//            在代码中设置控件的宽高和外边距等属性LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);lp.setMargins(0,0,20,0);
//            将布局参数设置给ImageViewpointIv.setLayoutParams(lp);pointIv.setImageResource(R.mipmap.a2);pointList.add(pointIv); //添加到集合当中便于统一管理pointLayout.addView(pointIv); //添加到布局当中显示出来}pointList.get(0).setImageResource(R.mipmap.a3);  //设置第一个小圆点为选中状态
//        创建适配器对象adapter = new AboutAdapter(viewList);
//        设置适配器aboutVp.setAdapter(adapter);
//        发送切换页面消息handler.sendEmptyMessageDelayed(1,5000);
//        设置ViewPager页面监听器setVPListener();}private void setVPListener() {/* 设置ViewPager的监听器*/aboutVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {for (int i = 0; i < pointList.size(); i++) {pointList.get(i).setImageResource(R.mipmap.a2);}pointList.get(position%pointList.size()).setImageResource(R.mipmap.a3);}@Overridepublic void onPageScrollStateChanged(int state) {}});}@Overridepublic void onClick(View v) {
//        调用系统自带的分享功能Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");String msg= "健康饮食非常的重要,了解饮食各种营养素和热量,摄入正确的食物,让你变得更健康,想要了解更多么,快来下载健康饮食app吧~~";intent.putExtra(Intent.EXTRA_TEXT,msg);startActivity(Intent.createChooser(intent,"健康饮食分享"));}
}

activity_about_04.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".AboutActivity"><android.support.v4.view.ViewPagerandroid:id="@+id/about_vp"android:layout_width="match_parent"android:layout_height="230dp"></android.support.v4.view.ViewPager><LinearLayoutandroid:id="@+id/about_layout_point"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"></LinearLayout><TextViewandroid:id="@+id/about_tv_version"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="当前版本: xs1.0"android:drawableLeft="@mipmap/icon_door"android:gravity="center_vertical"android:textSize="18sp"android:textStyle="bold"android:drawablePadding="20dp"android:padding="10dp"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#000000"/><TextViewandroid:id="@+id/about_tv_tel"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="联系人:新手程序员教程"android:gravity="center_vertical"android:textSize="18sp"android:textStyle="bold"android:padding="10dp"android:drawableLeft="@mipmap/icon_phone"android:drawablePadding="20dp"/><TextViewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#000000"/><TextViewandroid:id="@+id/about_tv_address"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="作者地址: 福大计科1班"android:gravity="center_vertical"android:textSize="18sp"android:textStyle="bold"android:padding="10dp"android:drawableLeft="@mipmap/icon_world"android:drawablePadding="20dp"/><TextViewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="#000000"/><TextViewandroid:id="@+id/about_tv_share"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="分享软件"android:gravity="center_vertical"android:textSize="18sp"android:textStyle="bold"android:padding="10dp"android:drawableLeft="@mipmap/icon_flash"android:drawablePadding="20dp"/>
</LinearLayout>

四,项目的源码+word+功能截图
        项目源码:放在评论区里

安卓期末项目:健康饮食系统相关推荐

  1. Springboot毕设项目健康饮食搭配系统9m0ay(java+VUE+Mybatis+Maven+Mysql)

    Springboot毕设项目健康饮食搭配系统9m0ay(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HB ...

  2. 计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: ...

  3. Android安卓成品项目 购物商城系统源码apk

    Android安卓成品项目 购物商城系统源码apk 安卓源码,成品项目,单机不联网项目,包含项目报告 登录注册,展示和修改个人信息,全部商家列表,讨论功能,添加购物车,联系,付款,查看订单记录,账户充 ...

  4. node.js+uniapp计算机毕业设计安卓基于Android健康饮食搭配的设计与实现(程序+APP+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  5. 计算机毕业设计Node.js+uniapp安卓基于Android健康饮食搭配的设计与实现(源码+程序+lw+远程调试)

    项目运行 环境配置: Node.js最新版+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue. 项目技术: Express框架 + Node.js+ Vue 等 ...

  6. 【附源码】Java计算机毕业设计安卓基于Android健康饮食搭配的设计与实现(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. 计算机毕业设计PHP+安卓基于Android健康饮食搭配的设计与实现(源码+程序+lw+远程调试)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue ...

  8. springboot+微信小程序健康饮食系统毕业设计源码280920

    健康饮食小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的健康饮食小程序小程序,系统为人们提供了方便快捷.即用即搜的健康食谱服务,包括健康食谱,医疗资讯.注册登录等,用户能够方便快捷地查看资讯 ...

  9. Python-Django毕业设计安卓基于Android健康饮食搭配的设计与实现(程序+LW)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. github+picGo+jsDelivr构建图床
  2. C# 跨线程赋值的简单做法
  3. 作为软件工程师,你必须知道的20个常识
  4. Scala基础教程(九):提取器、文件I/O
  5. 思科安全——企业安全棋局的“宇宙流”
  6. python面向对象(3)
  7. mysql select查询2个表_mysql – 为SELECT查询合并2个表?
  8. C2248编译错误的原因和解决--VC6向VC7.1迁移真是累死人,N多编译错误
  9. 在Kubernetes上运行SAP UI5应用
  10. Java中的延迟分配
  11. IIS5、IIS6、IIS7的ASP.net 请求处理过程比较
  12. SQL Server 2012笔记分享-47:Database Recovery Advisor
  13. 第5 章 引用类型2
  14. html.dropdownlist 设置默认值,设置Html.DropDownList()的默认值
  15. 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
  16. 运行成功:char转换为wchar_t的代码
  17. 网页图片显示分辨率与实际分辨率不一样
  18. aspose给word添加水印
  19. windows 10 git bash 提速方法
  20. linux酒吧消费,Handpick x HK I 深夜霓虹燈下的迷幻酒吧

热门文章

  1. wordpress 古腾堡_古腾堡vs WordPress页面构建器–真正的区别是什么?
  2. 基于51单片机防火防盗 LCD 1602屏+烟雾+温度+红外
  3. 用 Python 做游戏
  4. 华为网络配置(STP与MSTP)
  5. 网页制作APP和APP定制开发有哪些区别
  6. 文墨绘学:如何正确处理好家庭教育中家长与孩子的关系
  7. 区块链电商市场迎来新高潮 TBK记账系统耀世启航
  8. Houdini JoyOfVex 教程02
  9. 财务数据分析怎么做?财务公司应用方案
  10. 道氏交易:支撑阻力水平线的精妙交易法