Activity跳转(装备选择案例)
来源:互联网 发布:淘宝网商城男装秋装 编辑:程序博客网 时间:2024/05/16 12:05
1、主程序界面设计:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="bzu.edu.cn.equepments.MainActivity"> <ImageView android:layout_marginTop="50dp" android:id="@+id/baby" android:layout_centerHorizontal="true" android:layout_width="150dp" android:layout_height="200dp" android:src="@drawable/timg" /> <TextView android:layout_below="@id/baby" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请叫我宝宝" android:layout_centerHorizontal="true" android:id="@+id/textView" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@id/textView" android:layout_marginTop="50dp" android:layout_marginLeft="20dp"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="生命值" /> <ProgressBar// ProgressBar控件用于显示小宝宝生命值、攻击力、敏捷度的变化。
ProgressBar通常用于访问网络展示Loading对话框以及下载文件时显示的进度。 android:layout_marginLeft="20dp" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:id="@+id/progressBar" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="80" android:id="@+id/tv1" android:layout_marginLeft="20dp"/> </LinearLayout>\ <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="攻击力" /> <ProgressBar android:layout_marginLeft="20dp" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:id="@+id/progressBar2" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="80" android:id="@+id/tv2" android:layout_marginLeft="20dp"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="敏捷度" /> <ProgressBar android:layout_marginLeft="20dp" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:id="@+id/progressBar3" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="80" android:id="@+id/tv3" android:layout_marginLeft="20dp"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/textView" android:layout_marginTop="150dp" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="主人快给小宝宝买装备" android:onClick="click"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click1" android:text="小宝宝快给自己买装备" /> </LinearLayout></RelativeLayout>2、购买装备界面设计:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="bzu.edu.cn.equepments.shoppingActivity"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/btn_bg" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="商品名称" android:textSize="30dp" android:layout_marginTop="20dp"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="15dp" android:layout_marginLeft="20dp"> <TextView android:id="@+id/tv_life" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="生命值:" /> <TextView android:id="@+id/tv_atock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="攻击力:" /> <TextView android:id="@+id/tv_speed" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="敏捷度:" /> </LinearLayout> </LinearLayout></RelativeLayout>3、创建一个装备类(ItemInfo);
package bzu.edu.cn.equepments.equipment;import java.io.Serializable;/** * Created by Scorpio on 2017/4/11. */public class ItemInfo implements Serializable//Intent除了传递基本类型之外,
只能传递Serializable或Parcelable类型的数据,为了方便数据传递,在这里让ItemInfo类实现Serializable接口。 { private String name; private int life; private int atock; private int quick; public ItemInfo(String name, int life, int atock, int quick) { this.name = name; this.life = life; this.atock = atock; this.quick = quick; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getLife() { return life; } public void setLife(int life) { this.life = life; } public int getAtock() { return atock; } public void setAtock(int atock) { this.atock = atock; } public int getQuick() { return quick; } public void setQuick(int quick) { this.quick = quick; }}
4、创建shoppingActivity:
package bzu.edu.cn.equepments;import android.content.Intent;import android.os.Parcelable;import android.view.View.OnClickListener;import android.content.DialogInterface;import android.icu.text.IDNA;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.RelativeLayout;import android.widget.TextView;import java.io.Serializable;import bzu.edu.cn.equepments.equipment.ItemInfo;public class shoppingActivity extends AppCompatActivity implements OnClickListener { private ItemInfo itemInfo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); findViewById(R.id.rl).setOnClickListener(this);//显示装备界面的参数(装备名、生命力、敏捷度、攻击力) itemInfo=new ItemInfo("宝剑",50,100,50); TextView tv_atock=(TextView) findViewById(R.id.tv_atock); TextView tv_name=(TextView) findViewById(R.id.tv_name); TextView tv_speed=(TextView) findViewById(R.id.tv_speed); TextView tv_life=(TextView) findViewById(R.id.tv_life); tv_name.setText(itemInfo.getName()); tv_life.setText("生命值:"+itemInfo.getLife()); tv_atock.setText("攻击力:"+itemInfo.getAtock()); tv_speed.setText("敏捷度:"+itemInfo.getQuick()); } @Override//将整个界面作为一个点击事件 public void onClick(View v) { switch (v.getId())// { case R.id.rl://获取当前数据,并返回数据。 Intent intent =new Intent();
//通过OnActivityResult方法将数据返回给调用者(MainAcitivity) intent.putExtra( "ItemInfo", itemInfo); setResult(1,intent);//执行返回方法,关闭这个页面并且将数据返回 finish();(关闭当前页面) break; } }}
setResult()方法跳转Activity不需要指定要跳转的Activity。setReult()方法的作用是让当前Activity返回到它的调用者,
在这里可以理解为让ShopActivity返回到MainActivity。
5、创建MainActivity(界面交互):
package bzu.edu.cn.equepments;import android.content.Intent;import android.widget.ProgressBar;import android.widget.TextView;import android.view.View;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import bzu.edu.cn.equepments.equipment.ItemInfo;public class MainActivity extends AppCompatActivity { private ProgressBar pb1;//声明变量 private ProgressBar pb2; private ProgressBar pb3; private TextView tv1; private TextView tv2; private TextView tv3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pb1 = (ProgressBar) findViewById(R.id.progressBar);//找到变量 pb2=(ProgressBar) findViewById(R.id.progressBar2); pb3=(ProgressBar) findViewById(R.id.progressBar3); tv1=(TextView) findViewById(R.id.tv1); tv2=(TextView) findViewById(R.id.tv2); tv3=(TextView) findViewById(R.id.tv3); pb1.setMax(1000);//设置最大值 pb2.setMax(1000); pb3.setMax(1000); } public void click(View view)//创建两个按钮的点击事件,切换界面获得返回值 { Intent intent=new Intent(this,shoppingActivity.class); startActivityForResult(intent,1);//返回结果 } public void click1(View view) { Intent intent=new Intent(this,shoppingActivity.class); startActivityForResult(intent,1); } @Override//判断点击的按钮(主人给小宝宝买装备)、(小宝宝给自己买装备) protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data != null) {//判断结果为1主人买装备,结果为2,小宝宝自己买装备 if (resultCode == 1) { if (requestCode == 1) { ItemInfo itemInfo = (ItemInfo) data.getExtras().get("ItemInfo"); updateProgress(itemInfo);//装备购买完成后及时更新小宝宝的参数值 } } } } //更新装备值 private void updateProgress(ItemInfo itemInfo) { int progress1 = pb1.getProgress(); int progress2 = pb2.getProgress(); int progress3 = pb3.getProgress(); pb1.setProgress(progress1+itemInfo.getLife()); pb2.setProgress(progress2+itemInfo.getAtock()); pb3.setProgress(progress3+itemInfo.getQuick()); tv1.setText(pb1.getProgress()+""); tv2.setText(pb2.getProgress()+""); tv3.setText(pb3.getProgress()+""); }}运行结果:
1 0
- Activity跳转(装备选择案例)
- Activity跳转(装备选择案例)
- Android笔记——Activity中的回传数据案例(装备选择)
- Android两个android两个activity之间相互传递数据之装备选择(书上案例)
- Activity入门---回传数据综合小案例(装备选择)
- Activity的数据回传——案例:装备选择
- 装备选择案例
- 案例--装备选择
- Android装备选择案例
- Android装备选择案例
- 案例---装备选择
- Android装备选择案例
- 装备选择案例
- 课本案例--装备选择
- 案例——装备选择
- 案例——装备选择
- Android案例—装备选择
- Android 案例—装备选择
- redis.config配置文件详解
- angularjs ng-show的用法
- hibernate createSQLQuery Column 'xx' not found. 别名
- Spring MVC防御CSRF、XSS和SQL注入攻击
- mongodb常用sql
- Activity跳转(装备选择案例)
- 信号与频谱
- 深入理解JVM之Java虚拟机(JVM)内存区域划分
- 如何保护笔记本电脑中的重要文件
- freeMarker 的模板配置问题
- STM8的停机模式
- 响应式开发
- 推荐的10款开发常用的代码编辑器
- 进程间8种通信方式详解