首页 分享 安卓期末项目:健康饮食系统

安卓期末项目:健康饮食系统

来源:花匠小妙招 时间:2024-12-28 16:59

目录、

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

二,项目功能介绍:

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;

public class MainActivity extends AppCompatActivity {

TextView tv;

int time = 5;

SharedPreferences preferences;

private SharedPreferences.Editor editor;

@SuppressLint("HandlerLeak")

Handler handler = new Handler(){

@Override

public 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);

}

}

}

};

@Override

protected 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"?>

<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">

<Button

android: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"/>

<Button

android: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"/>

<Button

android: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;

public class InfoListActivity extends AppCompatActivity implements View.OnClickListener{

EditText searchEt;

ImageView searchIv,flushIv;

ListView showLv;

List<FoodBean>mDatas;

List<FoodBean>allFoodList;

private InfoListAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_info_list_02);

initView();

mDatas = new ArrayList<>();

allFoodList = FoodUtils.getAllFoodList();

mDatas.addAll(allFoodList);

adapter = new InfoListAdapter(this, mDatas);

showLv.setAdapter(adapter);

setListener();

}

private void setListener() {

showLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public 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);

}

@Override

public 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:

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

mDatas.addAll(list);

adapter.notifyDataSetChanged();

break;

}

}

}

activity_info_list_02.xml

<?xml version="1.0" encoding="utf-8"?>

<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">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="60dp"

android:padding="10dp"

android:background="@mipmap/search_background">

<ImageView

android: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" />

<ImageView

android: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" />

<EditText

android: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>

<ListView

android: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;

public class FoodDescActivity extends AppCompatActivity {

TextView titleTv1,titleTv2,descTv,notTv;

ImageView backIv,bigPicIv;

@Override

protected 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() {

@Override

public void onClick(View v) {

finish();

}

});

}

}

activity_food_grid_03.xml

<?xml version="1.0" encoding="utf-8"?>

<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">

<RelativeLayout

android:id="@+id/food_grid_layout"

android:layout_width="match_parent"

android:layout_height="60dp"

android:background="@mipmap/search_background">

<TextView

android: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>

<GridView

android: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;

public class AboutActivity extends AppCompatActivity implements View.OnClickListener{

ViewPager aboutVp;

TextView shareTv;

LinearLayout pointLayout;

List<View>viewList;

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(){

@Override

public void handleMessage(Message msg) {

if (msg.what == 1) {

int currentItem = aboutVp.getCurrentItem();

aboutVp.setCurrentItem(currentItem+1);

handler.sendEmptyMessageDelayed(1,5000);

}

}

};

@Override

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

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

pointIv.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);

setVPListener();

}

private void setVPListener() {

aboutVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override

public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override

public 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);

}

@Override

public void onPageScrollStateChanged(int state) {

}

});

}

@Override

public 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.ViewPager

android:id="@+id/about_vp"

android:layout_width="match_parent"

android:layout_height="230dp">

</android.support.v4.view.ViewPager>

<LinearLayout

android:id="@+id/about_layout_point"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:gravity="center">

</LinearLayout>

<TextView

android: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"/>

<TextView

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#000000"/>

<TextView

android: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"/>

<TextView

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#000000"/>

<TextView

android: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"/>

<TextView

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#000000"/>

<TextView

android: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+功能截图
        项目源码:放在评论区里

相关知识

安卓
java毕设安卓花品管理系统(开题+源码)
计算机Java项目|植物健康系统
葵花睡眠安卓版下载
安卓期末大作业——鲜花商店APP(源码+任务书)《移动应用开发》 课程考核报告 姓 名: 学 号: 完 成
花熊安卓版下载
葵花市场安卓版下载
花城安卓版下载
智能诊断v11.1.0.611 安卓版
花样文字安卓版下载

网址: 安卓期末项目:健康饮食系统 https://www.huajiangbk.com/newsview1343202.html

所属分类:花卉
上一篇: 营养健康饮食搭配如何做
下一篇: 花生苗的做法和步骤图解

推荐分享