• 一、运行效果 1、运行程序,进入如下图显示界面: ...选择你购买的商品,商品的属性值是不一样的,第一次先选择金剑。。 4、点击购买金剑,进入下图界面: 宝宝的属性值会根据商品的属性值而增加, 再点击一次主

    一、运行效果

    1、运行程序,进入如下图显示界面:

    2、输入用户名和密码,点击登录,进入下图界面:


    这时小宝宝的上方会显示刚刚你登录的用户名,证明是你的宝宝。。
    3、点击主人购买装备,进入下图界面:

    选择你购买的商品,商品的属性值是不一样的,第一次先选择金剑。。
    4、点击购买金剑,进入下图界面:

    宝宝的属性值会根据商品的属性值而增加,
    再点击一次主人购买装备,选择盔甲。。
    5、点击购买盔甲,进入下图界面:

    宝宝的属性值根据盔甲的属性值而增加。。

    二、设计思路

      1、先创建每个界面对应的layout布局文件
      2、再创建每个布局对应的class类,编写界面交互代码
      3、然后在清单文件中配置每个Activity
      4、最后,运行程序

    三、用到的布局文件和class类文件


    四、具体实现过程代码

    1、登录界面布局文件(activity_login.xml)具体代码如下所示:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content">
           <TextView
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:text="username:"
               android:textSize="25sp"/>
           <EditText
               android:id="@+id/et1"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:layout_weight="2"
               android:hint="Please Input"
               android:gravity="center"/>
       </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="password:"
                android:textSize="25sp"/>
            <EditText
                android:id="@+id/et2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:hint="Please Input"
                android:gravity="center"
                android:inputType="textPassword"/>
        </LinearLayout>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="登录"
            android:onClick="gomain"/>
    </LinearLayout>
    
    2、小宝宝属性显示界面(activity_main.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:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        tools:context="com.example.administrator.myapplication.MainActivity">
    <TextView
        android:id="@+id/main_tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="小宝宝"
        android:textSize="25sp"/>
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:src="@drawable/baby" />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="主人,快给小宝宝购买装备吧!"
            android:textSize="18sp" />
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp">
            <!-- 第一行-->
            <TableRow>
                <TextView
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="生命力:"
                    android:textSize="15sp" />
                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="3" />
                <TextView
                    android:id="@+id/tv_main_life"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="3dp"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="80" />
            </TableRow>
            <!-- 第二行-->
            <TableRow android:layout_marginTop="5dp">
                <TextView
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="攻击力:"
                    android:textSize="15sp" />
                <ProgressBar
                    android:id="@+id/progressBar2"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="3" />
                <TextView
                    android:id="@+id/tv_main_atk"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="3dp"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="80" />
            </TableRow>
            <!-- 第三行-->
            <TableRow android:layout_marginTop="5dp">
                <TextView
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="敏捷:"
                    android:textSize="15sp" />
                <ProgressBar
                    android:id="@+id/progressBar3"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="3" />
                <TextView
                    android:id="@+id/tv_main_speed"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="3dp"
                    android:layout_weight="1"
                    android:width="0dp"
                    android:text="80" />
            </TableRow>
        </TableLayout>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">
            <Button
                android:id="@+id/btn_master"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:onClick="click"
                android:drawablePadding="3dp"
                android:text="主人购买装备"
                android:textSize="14sp"/>
        </RelativeLayout>
    </LinearLayout>
    
    3、商店界面布局文件(activity_shop.xml)具体代码如下所示:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="1">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="请选择您要购买的商品"
            android:textColor="@color/colorAccent"
            android:textSize="22sp" />
        <!-- 第一个商品-->
        <TableLayout
            android:id="@+id/TL1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_weight="0.17">
            <TableRow>
                <TextView
                    android:id="@+id/tv_life1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="10dp"
                    android:text="生命力" />
            </TableRow>
            <TableRow>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="0"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="28dp"
                    android:src="@android:drawable/ic_menu_info_details" />
                <TextView
                    android:id="@+id/tv_name1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="商品名称" />
                <TextView
                    android:id="@+id/tv_atk1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="攻击力" />
                <Button
                    android:id="@+id/btn1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="购买"
                    android:onClick="click_1"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/tv_speed1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="10dp"
                    android:text="速度" />
            </TableRow>
        </TableLayout>
        <!-- 第二个商品-->
        <TableLayout
            android:id="@+id/TL2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_weight="0.17">
            <TableRow>
                <TextView
                    android:id="@+id/tv_life2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="10dp"
                    android:text="生命力" />
            </TableRow>
            <TableRow>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="0"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="28dp"
                    android:src="@android:drawable/ic_menu_info_details" />
                <TextView
                    android:id="@+id/tv_name2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="商品名称" />
                <TextView
                    android:id="@+id/tv_atk2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="攻击力" />
                <Button
                    android:id="@+id/btn2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="20dp"
                    android:text="购买"
                    android:onClick="click_2"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/tv_speed2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="10dp"
                    android:text="速度" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
    4、创建实体类ItemInfo,用于封装装备信息,具体代码如下所示:
    import java.io.Serializable;
    
    public class ItemInfo implements Serializable {
        private String name;
        private int acctack;
        private int life;
        private int speed;
        public ItemInfo(String name, int acctack, int life, int speed) {
            this.name = name;
            this.acctack = acctack;
            this.life = life;
            this.speed = speed;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAcctack() {
            return acctack;
        }
        public void setAcctack(int acctack) {
            this.acctack = acctack;
        }
        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;
        }
        public String toString() {
            return "[name=" + name + ",acctack=" + acctack + ",life=" + life + ",speed=" + speed + "]";
        }
    }
    注:Intent除了传递基本数据类型之外,也能传递Serializable或Parcelable类型的数据。为了方便数据传递,这里让ItemInfo类实现Serializable
    5、LoginActivity用来得到用户名的信息,点击登录时,调用MainActivity,并将用户名信息传递过去,具体代码如下所示:
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class LoginActivity extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
        }
        public void gomain(View v){
            String str= ((TextView)findViewById(R.id.et1)).getText().toString();
            Intent intent=new Intent(this,MainActivity.class);
            intent.putExtra("username",str);
            startActivity(intent);
        }
    }
    
    6、MainActivity主要是响应按钮的点击事件,并将返回的装备信息显示到指定的控件中,具体代码如下所示:
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
        private ProgressBar pb1;
        private ProgressBar pb2;
        private ProgressBar pb3;
        private TextView tv_main_life;
        private TextView tv_main_atk;
        private TextView tv_main_speed;
        private TextView main_tv_1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //显示username
            Intent intent1=getIntent();
            Bundle bundle=intent1.getExtras();//.getExtras()得到intent所附带的额外数据
            String str=bundle.getString("username");//getString()返回指定key的值
            main_tv_1=(TextView) findViewById(R.id.main_tv_1);//用TextView显示值
            main_tv_1.setText(str+"的小宝宝");
            //(1)找到我们关心的控件
            pb1 = (ProgressBar) findViewById(R.id.progressBar1);
            pb2 = (ProgressBar) findViewById(R.id.progressBar2);
            pb3 = (ProgressBar) findViewById(R.id.progressBar3);
    
            tv_main_life = (TextView) findViewById(R.id.tv_main_life);
            tv_main_atk = (TextView) findViewById(R.id.tv_main_atk);
            tv_main_speed = (TextView) findViewById(R.id.tv_main_speed);
            //(2)初始化进度条的最大值
            pb1.setMax(1000);
            pb2.setMax(1000);
            pb3.setMax(1000);
        }
        public void click(View v) {
            Intent intent = new Intent(this, ShoppingActivity.class);
            startActivityForResult(intent, 1);
        }
        //当我们开启的Activity 关闭的时候调用这个方法
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            //(1)代表数据来源于shoppingActivity 取数据
            ItemInfo info = (ItemInfo) data.getExtras().get("info");
            //(2)更新一下UI
            updateProgressBar(info);
        }
        //更新当前控件的UI
        private void updateProgressBar(ItemInfo info) {
            //(1)获取当前progressbar的进展
            int progress1 = pb1.getProgress();
            int progress2 = pb2.getProgress();
            int progress3 = pb3.getProgress();
            //(2)更新一下progressbar的进展
            pb1.setProgress(progress1 + info.getLife());
            pb2.setProgress(progress2 + info.getAcctack());
            pb3.setProgress(progress3 + info.getSpeed());
            //更新一下textview的值
            tv_main_life.setText(pb1.getProgress() + "");
            tv_main_atk.setText(pb2.getProgress() + "");
            tv_main_speed.setText(pb3.getProgress() + "");
        }
    }
    7、ShoppingActivity是用来展示装备信息的,当点击购买ShoppingActivity的装备时,会调回MainActivity并将装备信息回传给MainActivity,具体代码如下所示:
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;
    
    public class ShoppingActivity extends Activity {
        ItemInfo info1;
        ItemInfo info2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_shop);
            //(1)初始化显示到界面的数据
            info1 = new ItemInfo("金剑", 20, 100, 20);
            info2 = new ItemInfo("盔甲", 35, 200, 40);
            //(2)找到控件 显示数据
            TextView tv_name1 = (TextView) findViewById(R.id.tv_name1);
            TextView tv_life1 = (TextView) findViewById(R.id.tv_life1);
            TextView tv_atk1 = (TextView) findViewById(R.id.tv_atk1);
            TextView tv_speed1 = (TextView) findViewById(R.id.tv_speed1);
    
            TextView tv_name2 = (TextView) findViewById(R.id.tv_name2);
            TextView tv_life2 = (TextView) findViewById(R.id.tv_life2);
            TextView tv_atk2 = (TextView) findViewById(R.id.tv_atk2);
            TextView tv_speed2 = (TextView) findViewById(R.id.tv_speed2);
            //(3)初始化数据 展示到控件上
            tv_name1.setText(info1.getName());
            tv_atk1.setText("攻击力:" + info1.getAcctack());
            tv_life1.setText("生命力:" + info1.getLife());
            tv_speed1.setText("敏捷度:" + info1.getSpeed());
    
            tv_name2.setText(info2.getName());
            tv_atk2.setText("攻击力:" + info2.getAcctack());
            tv_life2.setText("生命力:" + info2.getLife());
            tv_speed2.setText("敏捷度:" + info2.getSpeed());
        }
    
        public void click_1(View v) {
            //(1)获取当前的数据
            Intent intent1 = new Intent();
            intent1.putExtra("info", info1);
            //(2)把结果返回给调用者(mainActivity) 通过onActivityResult方法返回
            setResult(10, intent1);
            finish();
        }
        public void click_2(View v) {
            //(1)获取当前的数据
            Intent intent1 = new Intent();
            intent1.putExtra("info", info2);
            //(2)把结果返回给调用者(mainActivity) 通过onActivityResult方法返回
            setResult(10, intent1);
            finish();
        }
    }
    8、配置清单文件(Android视图下→app→manifests→AndroidManifest.xml)具体代码如下所示:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.administrator.myapplication">
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".LoginActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".ShoppingActivity"></activity>
            <activity android:name=".MainActivity"></activity>
        </application>
    </manifest>
    注:intent-filter”字段所在的activity就是默认启动的第一个activity

    五、用到的新知识

    1、startActivityForResult与startActivity:
    (1)、startActivity( ) 
        仅仅是跳转到目标页面,不能往回跳转,若是想跳回当前页面,则必须再使用一次startActivity( )。
    (2)、startActivityForResult( ) 
        可以一次性完成这项任务,当程序执行到这段代码的时候,假若从Activity1跳转到下一个Activity2,而当这个Activity2调用了finish()方法以后,程序会自动跳转回Activity1,并调用前一个Activity1中的onActivityResult( )方法。
    2、控件ProgressBar(进度条)的几个常见方法属性:
    (1)、style属性:控制ProgressBar的表现形式,水平进度条的属性为:"?android:attr/progressBarStyleHorizontal",环形进 度条属性为:"android:attr/progressBarStyleLarge"
    (2)、setMax()方法:设置进度条的最大值
    (3)、setProgress()方法:设置当前进度
    (4)、getProgress()方法:获取当前进度

    注:以上运行效果图为真机运行效果





    展开全文
  • Activity实战(选择宝宝装备)-UsersRegister-数据传递、回传 源码【工程文件 --- 可以 直接 通过 git 拷贝到 Android Studio 上】: https://gitee.com/lwx001/UsersRegister

    源码【工程文件 --- 可以 直接 通过 git 拷贝到 Android Studio 上】:

    https://gitee.com/lwx001/UsersRegister

    目  录

    运行截图---展示: 

    ItemInfo.java :

    MainActivity.java :

    ShopActivity.java :

    ShowActivity.java :

    activity_main.xml :

    activity_shop.xml :

    activity_show.xml :


    运行截图---展示: 

     

    ItemInfo.java :

    package cn.lwx.usersregister;
    
    //用于 封装 装备信息的实体类
    
    import java.io.Serializable;
    
    public class ItemInfo implements Serializable {
        private String name;
        private int acctack;
        private int life;
        private int speed;
    
        public ItemInfo(String name, int acctack, int life, int speed) {
            this.name = name;
            this.acctack = acctack;
            this.life = life;
            this.speed = speed;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAcctack() {
            return acctack;
        }
    
        public void setAcctack(int acctack) {
            this.acctack = acctack;
        }
    
        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;
        }
    }

    MainActivity.java :

    package cn.lwx.usersregister;
    
    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;
    
    public class MainActivity extends AppCompatActivity {
    
        private EditText et_password;
        private Button btn_send;
        private EditText et_name;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 1、获取相关控件
            et_name = (EditText) findViewById(R.id.et_name);
            et_password = (EditText) findViewById(R.id.et_password);
            btn_send = (Button) findViewById(R.id.btn_send);
            // 2、给按钮设置点击事件 点击开始游戏按钮进行数据传递
            btn_send.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    passDate();
                }
            });
        }
    
        //通过这个方法实现数据的传递 传递数据
        public void passDate() {
            //1、创建Intent意图对象,启动Activity02
            //Intent intent = new Intent();
            Intent intent = new Intent(this, ShowActivity.class);
            //2、将数据存入Intent对象
            intent.putExtra("name", et_name.getText().toString().trim());
            intent.putExtra("password", et_password.getText().toString().trim());
            //3、开启意图
            startActivity(intent);
        }
    
        public void click(View view) {
        }
    }

    ShopActivity.java :

    package cn.lwx.usersregister;
    
    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 {
        ItemInfo itemInfo;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_shop);
    
            itemInfo = new ItemInfo("宇宙无敌大宝剑", 80, 20, 30);
            findViewById(R.id.rl).setOnClickListener(this);
    
            TextView mLifeTV = (TextView) findViewById(R.id.tv_life);
            TextView mNameTV = (TextView) findViewById(R.id.tv_name);
            TextView mSpeedTV = (TextView) findViewById(R.id.tv_speed);
            TextView mAttackTV = (TextView) findViewById(R.id.tv_attack);
            //设置值
            mLifeTV.setText("生命值+" + itemInfo.getLife());
            mNameTV.setText(itemInfo.getName() + "");
            mSpeedTV.setText("敏捷度+" + itemInfo.getSpeed());
            mAttackTV.setText("攻击力+" + itemInfo.getAcctack());
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.rl:
                    // 1、创建意图对象
                    Intent intent = new Intent();
                    // 2、存储数据到意图
                    intent.putExtra("equipment", itemInfo);
                    // 3、把数据返回
                    setResult(1, intent);
                    // 4、关闭当前页面
                    finish();
                    break;
            }
        }
    }

    ShowActivity.java :

    package cn.lwx.usersregister;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    
    public class ShowActivity extends AppCompatActivity {
    
        private ProgressBar mProgressBar1;
        private ProgressBar mProgressBar2;
        private ProgressBar mProgressBar3;
        private TextView mLifeTV;
        private TextView mAttackTV;
        private TextView mSpeedTV;
        private TextView tv_name;
        private TextView tv_password;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_show);
    
            //1、获取开启此页面的意图
            Intent intent = getIntent();
            //2、根据key取出对应的value值
            String name = intent.getStringExtra("name");
            String password = intent.getStringExtra("password");
    
            //3、把用户名与密码展示到控件上
            tv_name = (TextView) findViewById(R.id.tv_name);
            tv_password = (TextView) findViewById(R.id.tv_password);
    
            tv_name.setText("用户名:" + name);
            tv_password.setText("密    码:" + password);
            mLifeTV = (TextView) findViewById(R.id.tv_life_progress);
            mAttackTV = (TextView) findViewById(R.id.tv_attack_progress);
            mSpeedTV = (TextView) findViewById(R.id.tv_speed_progress);
    
            //4、初始化进度条
            initProgress();
        }
    
        private void initProgress() {
            //1、找到进度条控件
            mProgressBar1 = (ProgressBar) findViewById(R.id.progressBar1);
            mProgressBar2 = (ProgressBar) findViewById(R.id.progressBar2);
            mProgressBar3 = (ProgressBar) findViewById(R.id.progressBar3);
    
            //2、设置进度条的最大值
            mProgressBar1.setMax(100); //设置最大值1000
            mProgressBar2.setMax(100);
            mProgressBar3.setMax(100);
        }
    
        // 点击按钮 购买装备 开启新的activity并获取他的返回值
        public void click(View view) {
            Intent intent = new Intent(this, ShopActivity.class);
            startActivityForResult(intent, 1); // 返回请求结果,请求码为1
        }
    
        //当开启的Activity页面关闭时执行
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (data != null) {
                // 判断结果码是否等于1,等于1为宝宝添加装备
                if (resultCode == 1) {
                    if (requestCode == 1) {
                        //获取上一个页面返回的数值
                        ItemInfo info = (ItemInfo) data.getSerializableExtra("equipment");
                        //更新ProgressBar的值
                        updateProgress(info);
                    }
                }
            }
        }
    
        //更新ProgressBar的值
        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.getAcctack());
            mProgressBar3.setProgress(progress3 + info.getSpeed());
            mLifeTV.setText(mProgressBar1.getProgress() + "");
            mAttackTV.setText(mProgressBar2.getProgress() + "");
            mSpeedTV.setText(mProgressBar3.getProgress() + "");
        }
    }

    activity_main.xml :

    <?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:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/loading"
        tools:context=".MainActivity">
    
        <ImageView
            android:id="@+id/iv_head"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="100dp"
            android:src="@drawable/head" />
    
        <LinearLayout
            android: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">
    
            <RelativeLayout
                android:id="@+id/regist_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp">
    
                <TextView
                    android:id="@+id/tv_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="用户名:"
                    android:textSize="20sp" />
    
                <EditText
                    android: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:textSize="16sp" />
            </RelativeLayout>
    
            <RelativeLayout
                android:id="@+id/regist_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp">
    
                <TextView
                    android:id="@+id/tv_psw"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="密    码:"
                    android:textSize="20sp" />
    
                <EditText
                    android: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:inputType="textPassword"
                    android:textSize="16sp" />
            </RelativeLayout>
        </LinearLayout>
    
        <Button
            android: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:background="@drawable/start"
            android:text="注册"
            android:textColor="#FFFFFF"
            android:textSize="20sp"
            android:textStyle="bold" />
    </RelativeLayout>

    activity_shop.xml :

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        android: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">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#307f7f7f"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:padding="5dp">
            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:background="@android:drawable/ic_menu_info_details"/>
            <TextView
                android:id="@+id/tv_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="商品名称"/>
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="40dp"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/tv_life"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="生命值"
                    android:textSize="13sp"/>
                <TextView
                    android:id="@+id/tv_attack"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="攻击力"
                    android:textSize="13sp"/>
                <TextView
                    android:id="@+id/tv_speed"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="速度"
                    android:textSize="13sp"/>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

    activity_show.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">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_marginBottom="15dp"
            android:orientation="horizontal"
            android:padding="15dp">
    
            <ImageView
                android:id="@+id/pet_imgv"
                android:layout_width="0dp"
                android:layout_height="150dp"
                android:layout_weight="1"
                android:background="@drawable/baby" />
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:orientation="vertical"
                android:paddingLeft="20dp">
    
                <TextView
                    android:id="@+id/tv_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="用户名:"
                    android:textSize="14sp"
                    android:textStyle="bold" />
    
                <TextView
                    android:id="@+id/tv_password"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:text="密    码:"
                    android:textSize="14sp"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    
        <TextView
            android: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="20sp" />
    
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="50dp">
    
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
    
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="生命值:"
                    android:textColor="@android:color/black"
                    android:textSize="18sp" />
    
                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="2" />
    
                <TextView
                    android: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" />
            </TableRow>
    
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
    
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="攻击力:"
                    android:textColor="@android:color/black"
                    android:textSize="18sp" />
    
                <ProgressBar
                    android:id="@+id/progressBar2"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="2" />
    
                <TextView
                    android: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" />
            </TableRow>
    
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
    
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="敏    捷:"
                    android:textColor="@android:color/black"
                    android:textSize="18sp" />
    
                <ProgressBar
                    android:id="@+id/progressBar3"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="2" />
    
                <TextView
                    android: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" />
            </TableRow>
        </TableLayout>
    
        <Button
            android:id="@+id/btn_baby"
            android:layout_width="160dp"
            android:layout_height="48dp"
            android:layout_gravity="center"
            android:background="@drawable/start"
            android:onClick="click"
            android:text="立即购买 GO!"
            android:textColor="#ffffff"
            android:textSize="18sp"
            android:textStyle="bold" />
    </LinearLayout>

    蟹蟹观看~~~

    展开全文
  • 实现如下图所示的小宝宝装备案例: 一、先需要实现一下页面,运用各种布局和控件 代码如下 第一个页面 xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android=...

    实现如下图所示的小宝宝买装备案例:


    一、先需要实现一下页面,运用各种布局和控件 代码如下

    第一个页面

    <?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="cn.edu.bzu.test1.MainActivity">
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="45dp"
            android:src="@drawable/baby" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="主人快给小宝宝购买装备吧!"
            android:textSize="18sp" />
    
    
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:gravity="center"
            >
           <!-- 表格中第一行-->
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="生命值:" />
    
                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:layout_weight="3" />
    
                <TextView
                    android:id="@+id/tv_life"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="5dp"
                    android:text="80" />
    
            </TableRow>
    
            <!-- 表格中第二行-->
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                >
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="攻击力:" />
    
                <ProgressBar
                    android:id="@+id/progressBar2"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:layout_weight="3" />
    
                <TextView
                    android:id="@+id/tv_atk"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_marginTop="5dp"
                    android:layout_marginLeft="20dp"
                    android:text="80" />
    
            </TableRow>
            <!-- 表格中第三行-->
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                >
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="敏捷:" />
    
                <ProgressBar
                    android:id="@+id/progressBar3"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:layout_weight="3" />
    
                <TextView
                    android:id="@+id/tv_quick"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="5dp"
                    android:text="80" />
    
            </TableRow>
    
        </TableLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="25dp"
            >
            <Button
                android:onClick="click1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:text="主人购买装备"
                />
            <Button
                android:onClick="click2"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:text="小宝宝购买装备"
                />
    
        </LinearLayout>
    </LinearLayout>
    
    第二个页面:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <ImageButton
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_info_details"
            />
        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="金剑"
            android:textSize="25dp"
            android:layout_marginTop="30dp"
            android:layout_marginLeft="95dp"
            />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
    
            >
            <TextView
                android:id="@+id/tv_life1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:layout_marginLeft="200dp"
            android:text="生命值+20"
            />
            <TextView
                android:id="@+id/tv_atk1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20dp"
                android:layout_marginLeft="200dp"
                android:text="攻击力+100"
                />
            <TextView
                android:id="@+id/tv_quick1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20dp"
                android:layout_marginLeft="200dp"
                android:text="敏捷度+20"
                />
    
        </LinearLayout>
    </RelativeLayout>
    
       
    二、创建Info类 用来封装装备信息,右击空白处选择Generate然后选择Getter and Setter自动生成get set方法
    同样生成实例方法 代码如下:
    package cn.edu.bzu.test1;
    import java.io.Serializable;
    /**
     * Created by 宋港卉 on 2017/3/26.
     */
    
    public class Info implements Serializable {
    private String name; private int life; private int atk; private int quick; public Info(String name, int life, int atk, int quick) { this.name = name; this.life = life; this.atk = atk; 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 getAtk() { return atk; } public void setAtk(int atk) { this.atk = atk; } public int getQuick() { return quick; } public void setQuick(int quick) { this.quick = quick; }}
    三、创建shoppingActivity用来展示装备信息,当单击shoppingActivity的装备时,会调回MainActivity,并将装备信息
    回传给MainActivity,代码如下:
    package cn.edu.bzu.test1;
    import android.app.Activity;
    import android.content.Intent;
    import android.icu.text.IDNA;
    import android.icu.text.RelativeDateTimeFormatter;
    import android.os.Bundle;
    import android.provider.Settings;
    import android.view.View;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    /**
     * Created by 宋港卉 on 2017/3/26.
     */
    public class ShoppingActivity extends Activity implements View.OnClickListener {
        Info  info;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //加载布局
            setContentView(R.layout.activity_shop);
            findViewById(R.id.rl).setOnClickListener(this);
            //(1)初始化显示到界面上的数据
            info=new Info("金剑",20,100,20);
            //(2)找到控件,显示数据
            TextView tv_name=(TextView)findViewById(R.id.tv_name);
            TextView tv_life=(TextView)findViewById(R.id.tv_life1);
            TextView tv_atk=(TextView)findViewById(R.id.tv_atk1);
            TextView tv_quick=(TextView)findViewById(R.id.tv_quick1);
            //(3)初始化数据 展示到控件上
            tv_name.setText(info.getName());
            tv_life.setText("生命力:"+info.getLife());
            tv_atk.setText("攻击力:"+info.getAtk());
            tv_quick.setText("敏捷度:"+info.getQuick());
        }
        @Override
        public void onClick(View v){
            //具体判断一下点击的谁
            switch (v.getId()){
                case R.id.rl://证明我们点击的就是这个布局
                    //(1)获取当前的数据 把info数据返回
                    Intent intent =new Intent();
                    intent.putExtra("info",info);
                    //把结果返回给调用者(MainActivity)通过onActivityReult方法返回
                    setResult(10,intent);
                    //(2)关闭当前页面通过onActivityReult方法返回
                    finish();
                    break;
                default:
                    break;
            }
        }
    }
    
    四、在MainActivity中编写界面交互代码,主要用于响应按钮的点击事件,并将返回的装备信息显示到指定的控件中
    代码如下:
    package cn.edu.bzu.test1;
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    public class MainActivity extends AppCompatActivity {
        private ProgressBar pb1;
        private ProgressBar pb2;
        private  ProgressBar pb3;
        private TextView tv_life;
        private TextView tv_atk;
        private TextView tv_quick;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //(1).找到我们关心的控件
            pb1=(ProgressBar) findViewById(R.id.progressBar1);
             pb2=(ProgressBar) findViewById(R.id.progressBar2);
             pb3=(ProgressBar) findViewById(R.id.progressBar3);
    
             tv_life=(TextView) findViewById(R.id.tv_life);
             tv_atk=(TextView) findViewById(R.id.tv_atk);
             tv_quick=(TextView) findViewById(R.id.tv_quick);
    
            //(2)初始化一下进度条的最大值
            pb1.setMax(1000);
            pb2.setMax(1000);
            pb3.setMax(1000);
    
    
        }
        //点击按钮,跳转到另一个shopping页面进行购买装备
        public  void click1(View v){
            Intent intent=new Intent(this,ShoppingActivity.class);
            //开启一个页面 并且要开启这个页面的返回数据
            startActivityForResult(intent,1);
    
        }
        //当我们开启的Activity 关闭的时候调用 这个方法
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if(resultCode==10){
                //(1)代表数据来源于shoppingActivity 取数据
               Info info=(Info) data.getExtras().get("info");
                //(2)更新一下ui
                updateProgressBar(info);
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
        //更新当前控件的ui
        private void updateProgressBar(Info info){
            //(1)获取当前Progress的进度
           int progress1= pb1.getProgress();
            int progress2= pb2.getProgress();
            int progress3= pb3.getProgress();
    
            //(2)更新一下progressbar的进度
            pb1.setProgress(progress1+info.getLife());
            pb2.setProgress(progress2+info.getAtk());
            pb3.setProgress(progress3+info.getQuick());
            //(3)更新textview的值
            tv_life.setText(pb1.getProgress()+"");
            tv_atk.setText(pb2.getProgress()+"");
            tv_quick.setText(pb3.getProgress()+"");
        }
    }
    
    五、在清单文件中配置一下:红底为配置加的一句代码
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="cn.edu.bzu.test1">
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <!--配置activity-->
            <activity android:name=".ShoppingActivity"></activity>
        </application>
    
    
    </manifest>
    
    
    
    最终运行结果如下图:点击主人购买装备出现第二个界面,点击后返回第一个界面,并且第一个界面
                        中进度条发生变化。

    (运行过程中,我点击主人购买装备后打不开第二个界面,第一个自动关闭出现错误,下面出现的
    红色错误提示,应该从下网上看,经检查有的控件没有写上id,所以导致找不到出现错误,加上id
    后程序成功运行)



    展开全文
  • 宝宝装备选择

    2017-03-25 23:36:38
    一.任务图如下所示:  二.... 1.创建程序 交互界面如下所示: ... xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  xmlns:tools=

    一.任务图如下所示:


     二.代码部分

    1.创建程序

    交互界面如下所示:


    代码如下:

    <?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=".MainActivity"
        android:orientation="vertical"
        android:gravity="center"
        >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/baby"
            android:layout_gravity="center_horizontal"
            android:id="@+id/pet_imgv"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="30dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/pet_dialog_tv"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="25dp"
            android:gravity="center"
            android:text="主人,快给小宝宝购买装备吧"
            />
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp">
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="生命值:"
                    android:textColor="@android:color/black"
                    android:textSize="14sp"
                    />
                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    />
                <TextView
                    android:id="@+id/tv_life_progress"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0"
                    android:gravity="center"
                    android:textColor="#000000"
                    />
            </TableRow>
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="攻击力:"
                    android:textColor="@android:color/black"
                    android:textSize="14sp"
                    />
                <ProgressBar
                    android:id="@+id/progressBar2"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    />
                <TextView
                    android:id="@+id/tv_attack_progress"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0"
                    android:gravity="center"
                    android:textColor="#000000"
                    />
            </TableRow>
            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >
            <TextView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="敏捷:"
                android:textColor="@android:color/black"
                android:textSize="14sp"
                />
            <ProgressBar
                android:id="@+id/progressBar3"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                />
            <TextView
                android:id="@+id/tv_speed_progress"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="0"
                android:gravity="center"
                android:textColor="#000000"
                />
            </TableRow>
            </TableLayout>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:layout_marginTop="20dp"
            >
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/btn_baby"
                android:drawablePadding="3dp"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:onClick="click"
                android:text="小宝宝购买装备"
                android:textSize="14sp"
                />
        </RelativeLayout>
        </LinearLayout>

    2.创建装备界面

    如图所示:


    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/r1">
        <View
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@android:drawable/ic_menu_info_details"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
           />
    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="60dp"
        android:text="商品名称"
        />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="vertical"
            >
            <TextView
                android:id="@+id/tv_life"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13sp"
                android:text="生命值"
                />
            <TextView
                android:id="@+id/tv_attack"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13sp"
                android:text="攻击力"
                />
            <TextView
                android:id="@+id/tv_speed"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13sp"
                android:text="速度"
                />
        </LinearLayout>
    </RelativeLayout>

    3.创建ItemInfo类

    package cn.itcase.domain;
    import java.io.Serializable;
    public class ItemInfo implements Serializable{
        private String name;
        private int acctack;
        private int life;
        private int speed;
        public ItemInfo(String name,int acctack,int life,int speed){
            this.name=name;
            this.life=life;
            this.acctack=acctack;
            this.speed=speed;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAcctack() {
            return acctack;
        }
        public void setAcctack(int acctack) {
            this.acctack = acctack;
        }
        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;
        }
        @Override
        public String toString() {
            return "{name="+name+",acctack="+acctack+",life="+life+",speed="+speed+"}";
        }
    }

    4.创建ShopActivity

    package bzu.edu.cn.choiceequipment;
    import android.app.Activity;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.pm.PackageItemInfo;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;
    import java.io.Serializable;
    import cn.itcase.domain.ItemInfo;
    public class ShopActivity extends Activity implements View.OnClickListener {
        private ItemInfo itemInfo;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_shop);
            itemInfo=new ItemInfo("金剑",100,20,20);
            findViewById(R.id.r1).setOnClickListener(this);
            TextView mlifeTv=(TextView)findViewById(R.id.tv_life);
            TextView mNameTv=(TextView)findViewById(R.id.tv_name);
            TextView mSpeedTv=(TextView)findViewById(R.id.tv_speed);
            TextView mAttackTv=(TextView)findViewById(R.id.tv_attack);
            mlifeTv.setText("生命值+"+itemInfo.getLife());
            mNameTv.setText(itemInfo.getName()+"");
            mSpeedTv.setText("敏捷度+"+itemInfo.getSpeed());
            mAttackTv.setText("攻击力+"+itemInfo.getAcctack());
        }
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.r1:
                    Intent intent=new Intent();
                    intent.putExtra("equipment",itemInfo);
                    setResult(1,intent);
                    finish();
                    break;
            }
        }
    }

    5.编写界面交互代码

    package bzu.edu.cn.choiceequipment;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Process;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.accessibility.AccessibilityNodeInfo;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import cn.itcase.domain.ItemInfo;
    public class MainActivity extends Activity  {
        private ProgressBar mprogressBar1;
        private ProgressBar mprogressBar2;
        private ProgressBar mprogressBar3;
        private TextView mLifeTv;
        private TextView mNameTv;
        private TextView mSpeedTv;
        private TextView mAttackTv;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mLifeTv=(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(){
            mprogressBar1=(ProgressBar)findViewById(R.id.progressBar1);
            mprogressBar2=(ProgressBar)findViewById(R.id.progressBar2);
            mprogressBar2=(ProgressBar)findViewById(R.id.progressBar3);
            mprogressBar1.setMax(1000);//设置最大值1000
            mprogressBar2.setMax(1000);
            mprogressBar3.setMax(1000);
        }
        //开启新的Activity并且想获取他的返回值
        public void click(View view){
            Intent intent=new Intent(this,ShopActivity.class);
            startActivityForResult(intent,1);
        }
        protected void onActivityResult( int requestCode,int resultCode ,Intent data){
           super.onActivityResult(requestCode,resultCode,data);
            if(data!=null){
                //判断结果码是否等于1,等于1为小宝宝添加装备
                if(resultCode==1){
                    if(requestCode==1){
                        ItemInfo info=(ItemInfo)data.getSerializableExtra("equipment");
                        //更新ProgressBar的值
                        updateProgress(info);
                    }
                }
            }
        }
         //  更新ProgressBar的值
        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.getAcctack());
            mprogressBar3.setProgress(progress3+info.getSpeed());
            mLifeTv.setText(mprogressBar1.getProgress()+"");
            mAttackTv.setText(mprogressBar2.getProgress()+"");
            mSpeedTv.setText(mprogressBar3.getProgress()+"");
        }
    }

    6.清单文件配置

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="bzu.edu.cn.choiceequipment" >
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme" >
            <activity android:name=".MainActivity" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                   <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".ShopActivity"></activity>
        </application>
    </manifest>
    如此小宝宝购买装备就完成啦!!!!

    展开全文
  • Android--装备选择

    2017-03-27 20:25:27
    首先先看一下任务效果图在主界面中分别单击“主人购买装备”“小宝宝购买装备”按钮,会跳转至装备展示界面,装备购买成功后,在跳回主界面,并更新数据。 (各属性值上限1000)步骤如下:1、activity_main.xml:...

    首先先看一下任务效果图

    在主界面中分别单击“主人购买装备”“小宝宝购买装备”按钮,会跳转至装备展示界面,装备购买成功后,在跳回主界面,并更新数据。

    这里写图片描述

    这里写图片描述

    这里写图片描述
    (各属性值上限1000)

    步骤如下:

    1、activity_main.xml:装备选择对应的布局文件。
    此布局中使用到了控件ProgressBar(进度条),它是用来显示小宝宝的生命值、攻击力和敏捷度的。ProgressBar通常用于访问网络展示Laoding对话框以及下载文件时显示的进度。它有两种表现形式,一种是水平的,另一种是环形的。它的表现形式是由style属性控制的,ProgressBar有以下几个常用方法属性:
    ㈠ style属性:控制ProgressBar的表现形式,水平进度条需要设置style的属性值为“?android:attr/progressBarStyleHorizontal”,环形进度条需要设置style的属性值为“?android:attr/progressBarStyleLarge”
    ㈡ setMax()方法:设置进度条的最大值
    ㈢ setProgress()方法:设置当前进度
    ㈣getProgress()方法:获取当前进度
    activity_main.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: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"
        android:orientation="vertical"
        android:gravity="center"
        tools:context="cn.itcast.select.myapplication.MainActivity">
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="150dp"
            android:id="@+id/pet_imgv"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="30dp"
            android:src="@drawable/timg"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/prt_dialog_tv"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="25dp"
            android:gravity="center"
            android:text="主人,快给小宝宝购买装备吧"/>
        //生命值
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="20dp">
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="生命值"
                    android:textColor="@android:color/black"
                    android:textSize="14sp"/>
                <ProgressBar
                    android:id="@+id/progressBar1"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="2"/>
                <TextView
                    android:id="@+id/tv_life_progress"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0"
                    android:gravity="center"
                    android:textColor="#000000"/>
            </TableRow>
            //攻击力
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="攻击力"
                    android:textColor="@android:color/black"
                    android:textSize="14sp"/>
                <ProgressBar
                    android:id="@+id/progressBar2"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="2"/>
                <TextView
                    android:id="@+id/tv_attack_progress"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0"
                    android:gravity="center"
                    android:textColor="#000000"/>
            </TableRow>
            //敏捷
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="生命值"
                    android:textColor="@android:color/black"
                    android:textSize="14sp"/>
                <ProgressBar
                    android:id="@+id/progressBar3"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="2"/>
                <TextView
                    android:id="@+id/tv_speed_progress"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="0"
                    android:gravity="center"
                    android:textColor="#000000"/>
            </TableRow>
        </TableLayout>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">
            <Button
                android:id="@+id/btn_host"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:drawablePadding="5dp"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:onClick="click"
                android:text="主人购买装备"
                android:textSize="14sp"/>
    
            <Button
                android:id="@+id/btn_baby"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:drawablePadding="5dp"
                android:drawableRight="@android:drawable/ic_menu_add"
                android:onClick="click"
                android:text="小宝宝购买装备"
                android:textSize="14sp"/>
        </RelativeLayout>
    </LinearLayout>

    2、activit_shop.xml:购买装备对应的布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <View
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@android:drawable/ic_menu_info_details"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            />
        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="60dp"
            android:text="商品名称"
            />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="vertical">
            <TextView
                android:id="@+id/tv_life"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13dp"
                android:text="生命值"/>
            <TextView
                android:id="@+id/tv_attack"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13dp"
                android:text="攻击力"/>
            <TextView
                android:id="@+id/tv_speed"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="13dp"
                android:text="速度"/>
        </LinearLayout>
    </RelativeLayout>

    3、Info类:创建一个Info类,用于封装装备信息:

    package cn.itcast.domain;
    
    import java.io.Serializable;
    
    public class ItemInfo implements Serializable {
        private String name;
        private int acctack;
        private int life;
        private int speed;
        public ItemInfo(String name,int acctack,int life,int speed)
        {
            this.name=name;
            this.acctack=acctack;
            this.life=life;
            this.speed=speed;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAcctack() {
            return acctack;
        }
    
        public void setAcctack(int acctack) {
            this.acctack = acctack;
        }
    
        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;
        }
        public String toString()
        {
            return "[name="+name+",acctack="+acctack+",life="+life+",speed="+speed+"]";
        }
    }

    4、MainActivity:主要用于响应按钮的点击事件,并将返回的装备信息显示到指定的控件中。

    package cn.itcast.select.myapplication;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    
    import cn.itcast.domain.ItemInfo;
    
    public class MainActivity extends AppCompatActivity {
        //定义所需要的控件
        private ProgressBar mprogressBar1;
        private ProgressBar mprogressBar2;
        private ProgressBar mprogressBar3;
        private TextView mLifeTV;
        private TextView mAttackTV;
        private TextView mSpeedTV;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mLifeTV=(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()
        {
            //初始化进度条
            mprogressBar1=(ProgressBar)findViewById(R.id.progressBar1);
            mprogressBar2=(ProgressBar)findViewById(R.id.progressBar2);
            mprogressBar3=(ProgressBar)findViewById(R.id.progressBar3);
            //初始化进度条的最大值
            mprogressBar1.setMax(1000);
            mprogressBar2.setMax(1000);
            mprogressBar3.setMax(1000);
        }
        //开启新的activity并且想获取他的返回值--点击按钮跳转到另外一个ShopActivity页面进行购买装备
        public void click(View view)
        {
            Intent intent=new Intent(this,ShopActivity.class);
            startActivityForResult(intent,1);   //返回请求结果,请求码为1
        }
        //当开启的ShopActivity关闭的时候
        protected void onActivityResult(int requestCode,int resultCode,Intent data)
        {
            super.onActivityResult(requestCode,resultCode,data);
            if(resultCode==1){
                if(requestCode==1){
                    ItemInfo info=(ItemInfo)data.getSerializableExtra("equipment");
                    //更新ProgressBar的值
                    updateProgress(info);
                }
            }
        }
        //更新ProgressBar的值
        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.getAcctack());
            mprogressBar3.setProgress(progress3+info.getSpeed());
            mLifeTV.setText(mprogressBar1.getProgress()+"");
            mAttackTV.setText(mprogressBar2.getProgress()+"");
            mSpeedTV.setText(mprogressBar3.getProgress()+"");
        }
    }

    5、ShopActivity:用来展示装备信息,当点击ShoppingActivity的装备时,会调回MainActivity并将装备信息回传给MainActivity。

    package cn.itcast.select.myapplication;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;
    
    import cn.itcast.domain.ItemInfo;
    
    public class ShopActivity extends AppCompatActivity implements View.OnClickListener {
    
        private ItemInfo itemInfo;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //加载布局
            setContentView(R.layout.activity_shop);
            //初始化显示到屏幕上的数据
            itemInfo =new ItemInfo("金剑",100,20,20);
            findViewById(R.id.rl).setOnClickListener(this);//将这个布局设置为点击事件
            //找到控件
            TextView mLifeTV=(TextView)findViewById(R.id.tv_life);
            TextView mNameTV=(TextView)findViewById(R.id.tv_name);
            TextView mSpeedTV=(TextView)findViewById(R.id.tv_speed);
            TextView mAttackTV=(TextView)findViewById(R.id.tv_attack);
            //TextView 显示字符串,这里输入int值编译不会报错,运行会出错
            mLifeTV.setText("生命值+"+itemInfo.getLife());
            mNameTV.setText(itemInfo.getName()+"");
            mSpeedTV.setText("敏捷度+"+itemInfo.getSpeed());
            mAttackTV.setText("攻击力+"+itemInfo.getAcctack());
        }
        public void onClick(View v)
        {
            switch(v.getId())
            {
                //具体判断一下点击的谁
                case R.id.rl:   //证明点击的就是这个布局
                    //(1)获取当前的数据 把info数据返回
                    Intent intent =new Intent();
                    intent.putExtra("equipment",itemInfo);
                    //把结果返回给调用者(MainActivity)
                    setResult(1,intent);
                    //(2)关闭当前这个页面,通过onActivityResult方法把数据返回
                    finish();
                    break;
            }
        }
    }

    注意: setResult()方法的作用是让当前的Activity返回到它的调用者,在这里可以理解为让ShoppingActivity返回到MainActivity。

    展开全文
  • 该案例主要为了练习android开发中的数据操作,如何在多个布局中进行数据的回传。
  • Android装备选择

    2017-03-29 19:49:47
    这次我们做一个给小宝宝装备的例子。 一、’首先是界面,界面大致分为两个,一个是activity_main.xml具体代码如下: xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android=...
  • 今天我要讲的是一个装备选择的小案例 主界面是这样的风格: 首先我们需要分析里面需要用到的东西,例如图片和一些控件,还有布局设置。 并且要提前整理好头绪。 一、第一步我们先设计一下主布局: 具体代码...
  • Android装备选择实验

    2017-03-29 17:36:03
    一、实验目的 1) 掌握组件ProgressBar...装备选择 1.运行效果图 点击主人购买装备后跳转到装备页面 点击金剑装备后小宝宝的各个属性值增加。 2.设计思路 (1)将准备好的图标复制到res/
  • 这次实战演练来的有点晚,不过内容还是挺有意思的,围绕ProgressBar控件做的一个给小宝宝装备加属性的小游戏。 效果图如下: UI部分的代码: activity_main.xml: <RelativeLayout xmlns:android=...
  • Android装备选择案例

    2017-04-14 21:58:17
    Android学习中,有一个Activity回传数据,通过装备选择案例实现主界面商店页面购买装备后的界面activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="ht
  • 案例: 1、布局创建 2、创建Java类 3、代码编写
  • 本案例现了购买装备增加生命值的功能 运行效果:点击“小宝宝购买装备”按钮,会跳转到装备展示页面,购买...创建一个名为“装备选择”的项目,在activity_main.xml文件中设计用户交互页面,如左上图所示,代码如下:
  • 目录 1.[用户登录](#user) 2. 信息显示 3. 装备购买 用户登录
  • 宝宝装备

    2017-03-29 22:54:55
    1.创建对应布局activity_main.xml Android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent... android:layout_height=
  • Android装备选择

    2017-03-25 15:05:44
    今天用安卓做个案例,可以给你的小宝宝添加装备。 用到的控件有按钮,进度条(ProgressBar),文本,Image.下面就是部分代码: EquipActivity.javapackage bzu.edu.cn.activitydemo01;import android.content....
  • Android装备选择案例

    2017-03-28 22:42:22
    1.创建程序界面 LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"... android:layout_width="match_parent"  ... android:
1 2 3 4 5 ... 9
收藏数 163
精华内容 65