安卓期末项目:健康饮食系统
目录、
一,项目介绍:
二,项目功能介绍:
1新手引导界面
2健康饮食搭配主页
3食物搭配表
4 食物营养表
5本软件介绍←编辑
三,核心代码
(1)首页Mactivity核心代码
(2)食物搭配表
(3)食物营养表
(4)本软件介绍
四,项目的源码+word+功能截图
一,项目介绍:
用户通过下载应用程序,进入应用程序可以在程序中浏览各种食物的搭配,如果是首次登录则会进入一个新手引导界面,引导选项都选择完成后则进入。
进入后有三个功能:第1个是健康饮食搭配表,查看各种食物的饮食搭配;第2个是事物营养表,查看即将发布的食物饮食详情;第3个是关于本软件的介绍,主要是有个轮播图展示,还有作者的详细信息。
二,项目功能介绍:
1新手引导界面
2健康饮食搭配主页
3食物搭配表


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

图6.4-所述
点击食物营养表,则进入网格布局的即将发布食物介绍←
图6.4.2-所述←.
这里是鸡肉的详情,还有鸡肉不能和那些食物搭配←

三,核心代码
(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
上一篇: 营养健康饮食搭配如何做 |
下一篇: 花生苗的做法和步骤图解 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039