Android开发购买宠物装备

要点:

  • 使用Intent回传数据
  • Activity之间的跳转
  • startActivityForResult( Intent intent,int requestCode)在页面一中开启页面二
  • setResult(int resultCode, Intent data)页面二回传数据到页面一
  • onActivityResult()页面二被销毁时,调用页面一中的onActivityResult()来接收回传回来的数据

实现步骤
①宠物显示界面的设计与实现
②购买装备界面的设计与实现
③创建封装装备信息的实体类
④购买装备界面逻辑代码的设计与实现
⑤宠物显示界面逻辑代码的设计与实现

activity_main.xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns: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:background="@drawable/loading"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv_head"android:layout_width="70dp"android:layout_height="70dp"android:layout_centerHorizontal="true"android:layout_marginTop="150dp"android:src="@drawable/head"/><LinearLayoutandroid:id="@+id/layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/iv_head"android:layout_margin="10dp"android:orientation="vertical"><RelativeLayoutandroid:id="@+id/regist_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:text="用户名:"android:textSize="25sp"/><EditTextandroid:id="@+id/et_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_toRightOf="@id/tv_name"android:hint="请输入用户名"android:background="@null"android:textSize="25sp"/></RelativeLayout><RelativeLayoutandroid:id="@+id/regist_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"><TextViewandroid:id="@+id/tv_psw"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:text="密    码:"android:textSize="25sp"/><EditTextandroid:id="@+id/et_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_toRightOf="@id/tv_psw"android:hint="请输入密码"android:background="@null"android:inputType="textPassword"android:textSize="25sp"/></RelativeLayout></LinearLayout><Buttonandroid:id="@+id/btn_send"android:layout_width="160dp"android:layout_height="48dp"android:layout_below="@id/layout"android:layout_centerHorizontal="true"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:text="注册"android:textColor="#FFFFFF"android:textSize="25sp"android:textStyle="bold"/>
</RelativeLayout>

页面:

activity_show2.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:background="@drawable/loading"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:layout_marginBottom="15dp"android:orientation="horizontal"android:padding="15dp"><ImageViewandroid:id="@+id/pet_imgv"android:layout_width="0dp"android:layout_height="150dp"android:layout_weight="1"android:background="@drawable/baby"></ImageView><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_weight="1"android:orientation="vertical"android:paddingLeft="20dp"><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名:"android:textSize="14sp"android:textStyle="bold"></TextView><TextViewandroid:id="@+id/tv_password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密    码:"android:textSize="14sp"android:textStyle="bold"></TextView></LinearLayout></LinearLayout><TextViewandroid:id="@+id/pet_dialog_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginBottom="25dp"android:text="主人快给小宝宝买装备吧!"android:textSize="25sp"></TextView><TableLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginLeft="20dp"android:layout_marginRight="5dp"android:layout_marginBottom="50dp"><TableRow><TextViewandroid:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:text="生命值:"android:textColor="@android:color/black"android:textSize="18sp"></TextView><ProgressBarandroid:id="@+id/ProgressBar1"style="?android:attr/progressBarStyleHorizontal"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_weight="2"></ProgressBar><TextViewandroid:id="@+id/tv_life_progress"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="0"android:textColor="#000000"android:textSize="18sp"></TextView>^</TableRow><TableRow><TextViewandroid:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:text="攻击力:"android:textColor="@android:color/black"android:textSize="18sp" /><ProgressBarandroid:id="@+id/ProgressBar2"style="?android:attr/progressBarStyleHorizontal"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="2" /><TextViewandroid:id="@+id/tv_attack_progress"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="0"android:textColor="#000000"android:textSize="18sp"></TextView></TableRow><TableRow><TextViewandroid:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:text="敏    捷:"android:textColor="@android:color/black"android:textSize="18sp" /><ProgressBarandroid:id="@+id/ProgressBar3"style="?android:attr/progressBarStyleHorizontal"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="2" /><TextViewandroid:id="@+id/tv_speed_progress"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text="0"android:textColor="#000000"android:textSize="18sp"></TextView></TableRow></TableLayout><Buttonandroid:id="@+id/btn_baby"android:layout_width="wrap_content"android:layout_height="48dp"android:layout_gravity="center"android:text="立即购买 GO!"android:textColor="#ffffff"android:textSize="18sp"android:onClick="click"android:textStyle="bold"/></LinearLayout>

页面:

activity_shop.xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutandroid:id="@+id/rl"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/loading"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#307f7f7f"android:gravity="center_vertical"android:orientation="horizontal"android:padding="5dp"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:background="@android:drawable/ic_menu_info_details"/><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:text="商品名称"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="40dp"android:orientation="vertical"><TextViewandroid:id="@+id/tv_life"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="生命值"android:textSize="13sp"/><TextViewandroid:id="@+id/tv_attack"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="攻击力"android:textSize="13sp"/><TextViewandroid:id="@+id/tv_speed"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="速度"android:textSize="13sp"/></LinearLayout></LinearLayout>
</RelativeLayout>

页面:

MainActivity.java文件代码:

package com.example.userregist;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;import java.nio.file.FileVisitOption;public class MainActivity extends AppCompatActivity {private EditText et_name;private EditText et_passward;private Button btn_send;private EditText et_password;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_name = (EditText) findViewById(R.id.et_name);//找到账号输入框et_passward = findViewById(R.id.et_password);//找到密码输入框btn_send = findViewById(R.id.btn_send);//找到登录按钮btn_send.setOnClickListener(new View.OnClickListener() {//设置按钮的点击事件@Overridepublic void onClick(View view) {passDaata();//调用方法}});}private void passDaata() {Intent intent = new Intent(this,ShowActivity2.class);//创建意图并传入参数intent.putExtra("name",et_name.getText().toString().trim());//获得账号信息并传递账号信息intent.putExtra("password",et_passward.getText().toString().trim());//获得密码信息并传递密码信息startActivity(intent);//开启新的页面ShowActivity2。}
}

ItemInfo.java文件代码:
封装一个装备类

package com.example.userregist;import java.io.Serializable;public class ItemInfo implements Serializable {private String name;//名字private  int acctract;//攻击力private  int life;//生命值private  int speed;//敏捷public ItemInfo(String name, int acctract, int life, int speed) {this.name = name;this.acctract = acctract;this.life = life;this.speed = speed;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAcctract() {return acctract;}public void setAcctract(int acctract) {this.acctract = acctract;}public int getLife() {return life;}public void setLife(int life) {this.life = life;}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}
}

ShowActivity2.java文件代码:

package com.example.userregist;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;import java.io.Serializable;
import java.nio.file.FileVisitOption;public class ShowActivity2 extends AppCompatActivity {private ProgressBar mProgressBar1;private ProgressBar mProgressBar2;private ProgressBar mProgressBar3;private TextView mLifeTV;private TextView mAttackTV;private TextView mSpeedTV;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_show2);Intent intent = getIntent();// 获得意图对象String name = intent.getStringExtra("name");//获取账号信息String password = intent.getStringExtra("password");//获取密码信息TextView tv_name = ((TextView) findViewById(R.id.tv_name));//获得本页面的账号框TextView的名字TextView tv_passward = ((TextView) findViewById(R.id.tv_password));//获得本页面的密码框TextView的名字tv_name.setText("用户名:" + name);//显示账号到账号框TextViewtv_passward.setText("密    码:" + password);//显示密码到密码框TextViewmLifeTV = (TextView) findViewById(R.id.tv_life_progress);//找到进度条后面的数据mAttackTV = (TextView) findViewById(R.id.tv_attack_progress);mSpeedTV = (TextView) findViewById(R.id.tv_speed_progress);initProgress();//初始化进度条}private void initProgress() {this.mProgressBar1 = (ProgressBar) findViewById(R.id.ProgressBar1);//找到进度条ProgressBar mProgressBar1 = this.mProgressBar1;this.mProgressBar2 = (ProgressBar) findViewById(R.id.ProgressBar2);ProgressBar mProgressBar2 = this.mProgressBar2;this.mProgressBar3 = (ProgressBar) findViewById(R.id.ProgressBar3);ProgressBar mProgressBar3 = this.mProgressBar3;mProgressBar1.setMax(100);//设置进度条最大值mProgressBar2.setMax(100);mProgressBar3.setMax(100);}public void click(View v) {//开启商店页面Intent intent = new Intent(this, ShopActivity.class);startActivityForResult(intent, 1);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {//接收商店页面回传的数据if (data != null) {if (requestCode == 1) {if (resultCode == 1) {ItemInfo info = (ItemInfo) data.getSerializableExtra("equipment");updateProgress(info);//更新进度条和进度条后面的数据}}}super.onActivityResult(requestCode, resultCode, data);}private void updateProgress(ItemInfo info) {int progress1 = mProgressBar1.getProgress();//获取进度条现在的数据int progress2 = mProgressBar2.getProgress();int progress3 = mProgressBar3.getProgress();mProgressBar1.setProgress(progress1 + info.getLife());//显示进度条数据(现在的加上购买装备增加的)mProgressBar2.setProgress(progress2 + info.getAcctract());mProgressBar3.setProgress(progress3 + info.getSpeed());mLifeTV.setText(mProgressBar1.getProgress() + " ");mSpeedTV.setText(mProgressBar3.getProgress() + " ");mAttackTV.setText(mProgressBar2.getProgress() + " ");}
}

ShopActivity.java页面代码

package com.example.userregist;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;public class ShopActivity extends AppCompatActivity implements View.OnClickListener {private ItemInfo itemInfo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shop);this.itemInfo = new ItemInfo("金剑", 100, 20, 20);//实例化装备类ItemInfo itemInfo = this.itemInfo;findViewById(R.id.rl).setOnClickListener(this);TextView mlifeTV = ((TextView) findViewById(R.id.tv_name));//找到页内的控件TextView mNameTV = ((TextView) findViewById(R.id.tv_life));TextView mSpeed = ((TextView) findViewById(R.id.tv_speed));TextView mAccart = ((TextView) findViewById(R.id.tv_attack));mlifeTV.setText("生命值+" + itemInfo.getLife());//显示数据mAccart.setText("攻击力+" + itemInfo.getAcctract());mNameTV.setText(itemInfo.getName() + " ");mSpeed.setText("敏捷+" + itemInfo.getSpeed());}@Overridepublic void onClick(View view) {switch (view.getId()) {//回传数据case R.id.rl:Intent intent = new Intent();intent.putExtra("equipment", itemInfo);setResult(1, intent);finish();break;}}
}

参考图书《Android移动开发基础案例教程》

Android开发购买宠物装备相关推荐

  1. 基于Android+servlet的宠物商店【源码+文档+ppt】

    目录 1.文档目录 1.课题研究目的 2.开发技术 2.1 Android技术 2.2 servlet 3.需求分析 3.1 系统模型 3.2 系统用例图 3.3 顶层数据流图 3.4 零层数据流图 ...

  2. [Android] Android开发优化之——对界面UI的优化(2)

    在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的.界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局.通常,在这个页面中会用到很多 ...

  3. 开发者福利:史上最全Android 开发和安全系列工具

    取证工具 bandicoot - 一个Python工具箱,用于分析手机元数据.它提供了一个完整,易于使用的环境,数据科学家分析手机元数据.只需几行代码,加载数据集,可视化数据,执行分析和导出结果. A ...

  4. [Android] Android开发优化之——使用软引用和弱引用

    Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. 如 ...

  5. 0-2岁的app开发人员必读,Android开发APP前的准备事项

    2019独角兽企业重金招聘Python工程师标准>>> 随着移动互联网的兴起,各行各业对移动应用的需求越来越大,从事APP开发的人也越来越多,APP开发行业可以说是方兴未艾.APP开 ...

  6. 为什么Android Geeks购买Nexus设备

    The Galaxy S III is the highest-selling Android phone, but much of the geeky buzz is around the Nexu ...

  7. fritz 使用手册_Fritz对象检测指南:使用机器学习在Android中构建宠物监控应用

    fritz 使用手册 by Eric Hsiao 萧敬轩 Fritz对象检测指南:使用机器学习在Android中构建宠物监控应用 (A guide to Object Detection with F ...

  8. android开发入门与实践_我的新书《Android App开发入门与实战》已经出版

    前言 工作之余喜欢在CSDN平台上写一些技术文章,算下时间也有两三年了.写文章的目的一方面是自己对技术的总结,另一方面也是将平时遇到的问题和解决方案与大家分享,还有就是在这个平台上能和大家共同交流. ...

  9. Android开发笔记(一百六十五)利用红外发射遥控电器

    红外遥控是一种无线控制技术,它具有功耗小.成本低.易实现等诸多优点,因而被各种电子设备特别是家用电器广泛采用,像日常生活中的电视遥控器.空调遥控器等等基本都采用红外遥控技术. 不过遥控器并不都是红外遥 ...

  10. Android开发笔记(一百一十五)设计工具

    UI/UE UI是User Interface的简称,即用户接口,也称用户界面.UI泛指用户的操作界面,对手机来说,UI设计就是app的页面设计.一个好的UI,不但能让用户操作起来更加舒适.方便,而且 ...

最新文章

  1. linux上安装samba
  2. using(别名)和range based for
  3. HDU多校3 - 6797 Tokitsukaze and Rescue(dfs+最短路)
  4. ArcGIS Python
  5. HTML CSS JS(一)
  6. 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
  7. 服务器虚拟化mv,MVMC简化虚拟机迁移过程
  8. 在外通过手机远程控制家中或者公司的电脑
  9. wox wpm 安装 有道插件
  10. 回溯法——旅行商(TSP)问题
  11. 美女联系网站作者删除之前的写真照
  12. 云HIS(二级医院,乡镇医院,民营医院,标准化HIS医院信息管理系统源码)
  13. 电脑强制删除顽固文件
  14. 【CSS】886- 你该知道的字体 font-family
  15. 上海科技大学计算机浙江分数线,2018上海科技大学录取分数线
  16. ath10k 出现ath10k_htt_t2h_msg_handler+0xebc/0x1efc解决方案
  17. MySQL 数据表优化设计(九):如何设计统计数据表?
  18. 本特利Bently 330400_330425通用型加速度计功能与特点
  19. LM339-----比较器,以及工程应用实践(比较详细)
  20. redis6 入门级教程,有整合案例,可以直接看整合案例,简单入门,直接上手

热门文章

  1. 树莓派x86Android,3种创客开发板走向专业-浅谈X86树莓派板型的UP系列
  2. 简单实现antd的表单设计
  3. java ftp 250状态码_FTP状态码
  4. Zynga和StarLark庆祝《Golf Rival》面世四周年
  5. MySQL8.0备份与还原工具讲解----mysqlbackup篇
  6. Android 获取圆角图标bitmap黑色背景问题解决
  7. 金彩教育:如何提升店铺的信誉
  8. 关于o1,o2,o3
  9. 利用重抽样获取mgcv包的广义可加模型函数曲线的可信区间(3)
  10. 电子书chm转换html,chm转换为html的超简单方法