选择宝宝装备android
2017-03-25 15:05:44 zhaozhao_07 阅读数 467

今天用安卓做个案例,可以给你的小宝宝添加装备。
用到的控件有按钮,进度条(ProgressBar),文本,Image.

下面就是部分代码:
EquipActivity.java

package bzu.edu.cn.activitydemo01;

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 bzu.edu.cn.activitydemo01.cn.edu.bzu.domain.Info;

public class EquipActivity extends AppCompatActivity {

    private ProgressBar pb1;
    private ProgressBar pb2;
    private ProgressBar pb3;
    private TextView tv_life;
    private TextView tv_attack;
    private TextView tv_speed;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_equip);
        //(1)找到控件
       pb1= (ProgressBar) findViewById(R.id.pb1);
        pb2= (ProgressBar) findViewById(R.id.pb2);
        pb3= (ProgressBar) findViewById(R.id.pb3);
        tv_life=(TextView) findViewById(R.id.tv_life);
        tv_attack=(TextView) findViewById(R.id.tv_attack);
        tv_speed=(TextView) findViewById(R.id.tv_speed);
        //初始化进度条最大值
        pb1.setMax(1000);
        pb2.setMax(1000);
        pb3.setMax(1000);

    }
    //点击按钮  跳转到另一个shop页面  进行购买装备
    public void click1(View view)
    {
        Intent intent=new Intent(this,ShopActivity.class);
        //开启一个页面  并返回数据
        startActivityForResult(intent,1);
    }
    //当开启activity 关闭的时候调用方法
    protected void onActivityResult(int requestCode,int resultCode,Intent data)
    {
        if(resultCode==10)
        {
            //代表数据来源shop
            Info info=(Info)data.getExtras().get("info");
            //更新ui
            updateProgressBar(info);

        }
        super.onActivityResult(requestCode,resultCode,data);
    }

    //更新当前控件ui
    private void updateProgressBar(Info info) {
        //获取进度
        int pro1=pb1.getProgress();
        int pro2=pb2.getProgress();
        int pro3=pb3.getProgress();

        pb1.setProgress(pro1+info.getLife());
        pb2.setProgress(pro2+info.getAttack());
        pb3.setProgress(pro3+info.getSpeed());
        //更新textview
        tv_life.setText(pb1.getProgress()+"");
        tv_attack.setText(pb2.getProgress()+"");

        tv_speed.setText(pb3.getProgress()+"");
    }
}
activity_eqip.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_equip"
    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"
    tools:context="bzu.edu.cn.activitydemo01.EquipActivity">

    <ImageView
        android:layout_width="130dp"
        android:layout_height="177dp"
        android:src="@drawable/baby"
        android:layout_marginTop="20dp"
        android:layout_gravity="center"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:text="主人,快给小宝宝购买装备吧"/>
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="生命值:"/>

            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:id="@+id/pb1" />
            <TextView
                android:id="@+id/tv_life"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="0"/>
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="攻击力:"/>

            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:id="@+id/pb2" />
            <TextView
                android:id="@+id/tv_attack"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="0"/>
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">

            <TextView

                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="敏捷度:"/>

            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:id="@+id/pb3" />
            <TextView
                android:id="@+id/tv_speed"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="0"/>
        </TableRow>
    </TableLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp">

        <Button
            android:text="小宝宝购买装备"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/b2"
            android:onClick="click2"
            android:drawableRight="@android:drawable/ic_menu_add"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />

        <Button
            android:text="主人购买装备"
            android:onClick="click1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/b1"
            android:drawableRight="@android:drawable/ic_menu_add"
            android:layout_marginLeft="11dp"
            android:layout_marginStart="11dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

    </RelativeLayout>

</LinearLayout>

这里写图片描述

ShopActivity.java

package bzu.edu.cn.activitydemo01;

import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

import bzu.edu.cn.activitydemo01.cn.edu.bzu.domain.Info;

public class ShopActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView tv_name;
    private TextView tv_life;
    private TextView tv_attack;
    private TextView tv_speed;
    private Info info;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shop);
        //RelativeLayout rl=(RelativeLayout) findViewById(R.id.rl);
        findViewById(R.id.rl).setOnClickListener(this);
        //rl.setOnClickListener(this);

        //初始化数据
        info=new Info("金剑",20,100,20);
        //找到控件 显示数据
        tv_name=(TextView) findViewById(R.id.tv_name);
        tv_life=(TextView) findViewById(R.id.tv_life);
        tv_attack=(TextView) findViewById(R.id.tv_attack);
        tv_speed=(TextView) findViewById(R.id.tv_speed);

        //初始化数据 展示到控件上
        tv_name.setText(info.getName());
        tv_life.setText("生命力+"+info.getLife());
        tv_attack.setText("攻击力+"+info.getAttack());
        tv_speed.setText("敏捷度+"+info.getSpeed());case R.id.rl://证明的点击的这个布局

                //获取当前数据 把info数据返回
                Intent intent=new Intent();
                intent.tivity_shop.xml

    o",info);
                //将结果返回调用者   通过onActivityResult方法返回
                setResult(10,intent);
                //关闭当前页面
                finish();

                break;
            default:
                break;
        }
    }
}
activity_shop.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:id="@+id/rl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    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.activitydemo01.ShopActivity">

    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:orientation="vertical"></LinearLayout>

    <TextView
        android:id="@+id/tv_life"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="生命值:"
        android:layout_marginTop="24dp"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@+id/tv_speed"
        android:layout_alignStart="@+id/tv_speed" />

    <TextView
        android:id="@+id/tv_attack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="攻击力:"
        android:layout_below="@+id/tv_life"
        android:layout_alignLeft="@+id/tv_life"
        android:layout_alignStart="@+id/tv_life" />

    <TextView
        android:id="@+id/tv_speed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="速度:"
        android:layout_below="@+id/tv_attack"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="商品:"
        android:layout_alignBaseline="@+id/tv_attack"
        android:layout_alignBottom="@+id/tv_attack"
        android:layout_toLeftOf="@+id/tv_life"
        android:layout_toStartOf="@+id/tv_life"
        android:layout_marginRight="18dp"
        android:layout_marginEnd="18dp"></TextView>

    <View
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@android:drawable/ic_menu_info_details"
        android:layout_alignTop="@+id/tv_name"
        android:layout_toLeftOf="@+id/tv_name"
        android:layout_toStartOf="@+id/tv_name"
        android:layout_marginRight="15dp"
        android:layout_marginEnd="15dp"></View>


</RelativeLayout>

点击主人购买装备
这里写图片描述

点击页面,返回到EquipActivity页面

它用到finish的方法。

这里写图片描述

这里写图片描述
是不是so easy,你也快给你的小宝宝购买装备吧 __

2017-03-27 16:29:03 ITlijung 阅读数 320

这次做的是一个购买装备并显示属性加成的案例,一个是购买界面,一个是装备属性界面。

属性加成由progressbar显示,还有就是数值变化。

1、装备购买界面如下:


代码如下

<?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_two"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.administrator.weightjisuanqi.mainActivity">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="150dp"
        android:src="@drawable/shangdian"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="主人给我一把无尽吧"
        android:gravity="center_horizontal"
        android:textSize="20dp"
        />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        >
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
           >

    <TextView

        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="生命值"
        />
        <ProgressBar
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_weight="3"
            android:layout_marginLeft="20dp"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar1"
            />

        <TextView
        android:layout_width="0dp"
            android:id="@+id/tv_life"
        android:layout_height="wrap_content"
        android:layout_weight="1"
            android:text="495"
            android:layout_marginLeft="20dp"
        />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp">

            <TextView

                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="攻击力"

                />
            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="match_parent"
                android:layout_weight="3"
                android:layout_marginLeft="20dp"
                android:layout_height="wrap_content"
                android:id="@+id/progressBar2"
                />
            <TextView
                android:layout_width="0dp"
                android:id="@+id/tv_atk"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="70"
                android:layout_marginLeft="20dp"
                />
        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp">

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="暴击"
                />
            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="match_parent"
                android:layout_weight="3"
                android:layout_marginLeft="20dp"
                android:layout_height="wrap_content"
                android:id="@+id/progressBar3"
                />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="0"
                android:layout_marginLeft="20dp"
                android:id="@+id/tv_bang"
                />
        </TableRow>
    </TableLayout>
       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content">
           <Button
               android:onClick="onClick1"
               android:layout_width="0dp"
               android:layout_marginTop="10dp"
               android:layout_weight="1"
               android:layout_height="wrap_content"
               android:text="出门装"/>
           <Button
               android:onClick="onclick2"
               android:layout_width="0dp"
               android:layout_marginTop="10dp"
               android:layout_height="match_parent"
               android:layout_weight="1"

               android:text="暴击"/>
       </LinearLayout>

</LinearLayout>

2、装备属性界面

代码如下:
<?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:id="@+id/rl">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@drawable/duolanjian"
        android:layout_gravity="center_horizontal"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="多兰剑"
        android:textSize="50dp"
        android:layout_marginTop="20dp"
        android:gravity="center"/>
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TableRow>
            <TextView
                android:id="@+id/tv_name"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="生命值"
                android:textSize="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                />
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="80"
                android:textSize="20dp"
                android:layout_marginTop="20dp"
                />
        </TableRow>
        <TableRow>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="攻击力"
                android:textSize="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                />
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="7"
                android:textSize="20dp"
                android:layout_marginTop="20dp"
                />
        </TableRow>
        <TableRow>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="暴击"
                android:textSize="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                />
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="3"
                android:textSize="20dp"
                android:layout_marginTop="20dp"
                />
        </TableRow>
    </TableLayout>

</LinearLayout>

3、

运行程序后先点击按钮一,需要跳转到装备属性界面,并且还要返回装备属性的值,用来更新progressbar的值

需要用到startActivityForResult()方法

代码如下:
public class mainActivity extends AppCompatActivity {

    private ProgressBar pbs1;
    private ProgressBar pbs2;
    private ProgressBar pbs3;
    private TextView tv_life;
    private TextView tv_atk;
    private TextView tv_bang;
    private TextView tv_name;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        //1、  找到需要的控件;
         pbs1=(ProgressBar)findViewById(R.id.progressBar1);
         pbs2=(ProgressBar)findViewById(R.id.progressBar2);
         pbs3=(ProgressBar)findViewById(R.id.progressBar3);

        tv_life=(TextView)findViewById(R.id.tv_life);
        tv_name=(TextView) findViewById(R.id.tv_name);
        tv_atk=(TextView)findViewById(R.id.tv_atk);
        tv_bang=(TextView)findViewById(R.id.tv_bang);
        //2、初始化属性的最大值
        pbs1.setMax(10000);
        pbs2.setMax(300);
        pbs3.setMax(100);
    }
    public void onClick1(View v){

        Intent intent=new Intent(this,shoppingActivity.class);
        //开启一个页面并返回值
        startActivityForResult(intent,1);
    }

    //当我们关闭Activity时调用这个方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode==10){
            //代表数据来源于shoppingactivity
            Info info=(Info)data.getExtras().get("info");
            //更新一下ui
            updateProgressBar(info);
        }
    }
    //更新当前控件的ui
    public void updateProgressBar(Info info){
        //获取当前progressBar的进度
        int progress1=pbs1.getProgress();
        int progress2=pbs2.getProgress();
        int progress3=pbs3.getProgress();

        //更新一下progressBar的进度
        pbs1.setProgress(progress1+info.getLife());
        pbs2.setProgress(progress2+info.getAtk());
        pbs3.setProgress(progress3+info.getBang());

        //更新一下textview的值
        tv_life.setText(495+pbs1.getProgress()+"");
        tv_atk.setText(70+pbs2.getProgress()+"");
        tv_bang.setText(pbs3.getProgress()+"");
    }
}
4、装备属性放到一个java文件中 我的叫Info
构造了get,set方法
代码如下:
public class Info implements Serializable{
    private String name;
    private int life;
    private int atk;
    private int  bang;

    public Info(String name, int life, int atk, int bang) {
        this.name = name;
        this.life = life;
        this.atk = atk;
        this.bang = bang;
    }

    public int getLife() {
        return life;
    }

    public void setLife(int life) {
        this.life = life;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAtk() {
        return atk;
    }

    public void setAtk(int atk) {
        this.atk = atk;
    }

    public int getBang() {
        return bang;
    }

    public void setBang(int bang) {
        this.bang = bang;
    }
}

5、最后是连接mainActivity和shopping界面的java文件
代码如下:
public class shoppingActivity extends AppCompatActivity implements View.OnClickListener {
    private Info info;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.shoping);
        findViewById(R.id.rl).setOnClickListener(this);
        //1、初始化显示到页面的数据
       // info=new Info("多兰剑",80,7,3);
        //2、找到控件,显示数据
        TextView tv_life=(TextView)findViewById(R.id.tv_life);
        TextView tv_atk=(TextView)findViewById(R.id.tv_atk);
        TextView tv_bang=(TextView)findViewById(R.id.tv_bang);
        TextView tv_name=(TextView)findViewById(R.id.tv_name);

        //3、初始化数据 显示到控件上
//        tv_name.setText(info.getName());
//        tv_atk.setText("攻击力"+info.getAtk());
//        tv_life.setText("生命值"+info.getLife());
//        tv_bang.setText("暴击"+info.getBang());


    }

    @Override
    public void onClick(View v) {
    //具体判断一下点击的谁
        switch (v.getId()){
            case R.id.rl: //证明我们点击的是这个布局
                //获取当前数据 把info数据返回
                Intent intent=new Intent();
                intent.putExtra("info",info);
                //把结果返回给mainActivity 通过onActivityResult方法返回
                setResult(10,intent);
                //关闭当前页面
                finish();
                break;
            default:
                break;
        }
    }
}

6、运行结果如图:
1、购买装备前

2、购买装备后


2017-03-29 17:46:22 JKX0909 阅读数 175

这次我们做一个给小宝宝买装备的例子。

一、’首先是界面,界面大致分为两个,一个是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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="cn.edu.bzu.a12lab05.MainActivity">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:src="@drawable/cimu"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="45dp"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="主人,快给小宝宝买装备吧!"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:textSize="18sp"
        />
    <TableLayout
        android:layout_marginTop="25dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="生命值:"
                />
            <ProgressBar
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar1"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                />
            <TextView
                android:id="@+id/tv_life_progress"
                android:layout_width="0dip"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp" />
        </TableRow>
        <TableRow
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="攻击力"
                />
            <ProgressBar
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar2"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                />
            <TextView
                android:id="@+id/tv_attack_progress"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
              />
        </TableRow>
        <TableRow
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="敏捷:"
                />
            <ProgressBar
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar3"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                />
            <TextView
                android:id="@+id/tv_speed_progress"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp" />
        </TableRow>
    </TableLayout>
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:layout_marginTop="15dp"
      >
      <Button
          android:layout_weight="1"
          android:onClick="click1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="主人购买装备"
          android:drawableRight="@android:drawable/ic_input_add"
          />
  </LinearLayout>
</LinearLayout>
运行效果如图:

购买装备界面shop.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:id="@+id/r1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context="cn.edu.bzu.a12lab05.MainActivity">
    <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"
        ></View>
    <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>

二、创建ItemInfo类
  先创建一个cn.itcast.domain包,在包中创建一个ItemInfo类,用于封装装备信息。
package cn.itcast.domain;

/**
 * Created by 贾可新 on 2017/3/26.
 */

public class ItemInfo {
    private String name;
    private int attack;
    private int life;
    private int speed;
    public ItemInfo(String name,int attack ,int life,int speed){
        this.name=name;
        this.attack=attack;
        this.life=life;
        this.speed=speed;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public int getAttack(){
        return attack;
    }
    public void setAttack(){
        this.attack=attack;
    }
    public int getLife(){
        return life;
    }
    public void setLife(){
        this.life=life;
    }
    public int getSpeed(){
        return speed;
    }
    public String toString(){
        return "[name="+name+",attack="+attack+",life="+life+",speed="+speed+"]";
    }
}
三、接下来编写MainActivity。主要用于响应按钮的点击事件,并将返回的装备信息显示到指定的ListView控件中:
package cn.edu.bzu.a12lab05;

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

    public void click(View view) {
        Intent intent = new Intent(this,ShopActivity.class);
        startActivityForResult(intent, 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (data != null) {
            if (requestCode == 1) {
                ItemInfo info = (ItemInfo) data.getSerializableExtra("equipment");
                updateProgress(info);
            }
        }
    }
    private void updateProgress(ItemInfo info) {
        int progress1 = mProgressBar1.getProgress();
        int progress2 = mProgressBar2.getProgress();
        int progress3 = mProgressBar3.getProgress();
        mProgressBar1.setProgress(progress1 + info.getLife());
        mProgressBar2.setProgress(progress1 + info.getAttack());
        mProgressBar3.setProgress(progress1 + info.getSpeed());
        mLifeTV.setText(mProgressBar1.getProgress() + "");
        mAttackTV.setText(mProgressBar2.getProgress() + "");
        mSpeedTV.setText(mProgressBar3.getProgress() + "");
    }
}
四、创建ShopActivity,ShopActivity是用来展示装备信息的,当单击ShopActivity的装备时,会调回MainActivity并将装备信息回传给
MainActivity:
package cn.edu.bzu.a12lab05;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

import cn.edu.bzu.a12lab05.R;
import cn.itcast.domain.ItemInfo;

/**
 * Created by 贾可新 on 2017/3/26.
 */

public class ShopActivity extends Activity implements View.OnClickListener {
    private ItemInfo itemInfo;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.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.getAttack());
    }
    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.r1:
                Intent intent =new Intent();
                intent.putExtra("equipment",intent);
                setResult(1,intent);
                finish();
                break;
        }
    }
}
至此,Android的装备选择就到此完成了,当然第一次做,肯定会有一点不足,不足支出,请多多指教。

2017-04-23 19:14:54 nbabcdg 阅读数 170

1.创建程序
创建一个名为“zhuangbeixuanze”的工程,设计用户交互页面。
装备选择程序对应的布局文件(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:orientation="vertical"
    android:gravity="center"
    tools:context="com.example.zhuangbeixuanze.MainActivity">

    <ImageView
        android:id="@+id/pet_imgv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="30dp"
        android:src="@mipmap/ic_launcher"/>
    <TextView
        android:id="@+id/pet_dialog_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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_marginLeft="50dp"
        android:layout_marginRight="50dp"
        android:layout_marginTop="20dp">
        <Button
            android:id="@+id/btn_baby"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawablePadding="3dp"
            android:onClick="click"
            android:text="小宝宝购买装备"
            android:textSize="14sp"/>
    </RelativeLayout>
</LinearLayout>

上述布局代码使用到了控件ProgressBar(进度条),它是用来显示生命值,攻击力和敏捷度。ProgressBar通常用于访问网络展示Loading对话框以及下载文件时显示的进度。它有两种表现形式,一种是水平的,另一种是环形的。它的表现形式是由style属性控制的,ProgressBar几个常用方法属性如下所示:

a. style属性:控制ProgressBar的表现形式,水平进度条需要设置style的属性值为“?Android:attr/progressBarStyleHorizontal”,环形进度条需要设置style的属性值为“?android:attr/progressBarStyleLarge”。
b. setMax()方法:设置进度条的最大值。
c. setProgress()方法:设置当前进度。
d. getProgress()方法:获取当前进度。
效果图:
这里写图片描述
2.创建装备界面
创建装备界面activity_shop.xml,该界面是来展示装备的。
购买装备界面(activity_shop.xml)对应的布局文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/r1"
    android:orientation="vertical">
    <View
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_centerHorizontal="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类
在包中创建一个ItemInfo类,用于封装装备信息
4.创建ShopActivity
ShopActivity是用来展示装备信息的,当单击ShopActivity的装备时,会调回MainActivity并将装备信息回传给MainActivity。具体代码如下所示:

public class ShopActivity extends Activity 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.r1).setOnClickListener(this);
        TextView mLifeTV=(TextView)findViewById(R.id.tv_life);
        TextView mNameTV=(TextView)findViewById(R.id.tv_name);
        TextView mAttackTV=(TextView)findViewById(R.id.tv_attack);
        TextView mSpeedTV=(TextView)findViewById(R.id.tv_speed);
        mLifeTV.setText("生命值+"+itemInfo.getLife());
        mNameTV.setText(itemInfo.getName()+"");
        mSpeedTV.setText("敏捷度+"+itemInfo.getSpeed());
        mAttackTV.setText("攻击力+"+itemInfo.getAttack());

    }
    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.编写界面交互代码(MainActivity)
接下来编写MainActivity。MainActivity主要用于响应按钮的点击事件,并将返回的装备信息显示到指定的ListView控件中,具体代码如下所示:

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);
    }
    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){
            if(resultCode==1){
                if(requestCode==1){
                    ItemInfo info=(ItemInfo)data.getSerializableExtra("equipment");
                    //更新ProgressBar的值
                    updateProgress(info);
                }
            }
        }
    }
    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.getAttack());
        mProgressBar3.setProgress(progress3+info.getSpeed());
        mLifeTV.setText(mProgressBar1.getProgress()+"");
        mAttackTV.setText(mProgressBar2.getProgress()+"");
        mSpeedTV.setText(mProgressBar3.getProgress()+"");
    }

}

6.清单文件的配置
使用Activity是需要在清单文件中配置,具体代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.zhuangbeixuanze">

    <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"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

2017-03-29 16:48:56 xy7788521 阅读数 215

一、实验目的

1) 掌握组件ProgressBar的使用

2) 掌握startActivityForResult方法的使用

二、实验仪器

Android Studio

三、实验任务

装备选择

1.运行效果图


点击主人购买装备后跳转到装备页面


点击金剑装备后小宝宝的各个属性值增加。


2.设计思路

(1)将准备好的图标复制到res/drawable文件夹下

(2)创建一个垂直的线性布局,并在线性布局中创建1个表格布局和一个相对布局

(3)在线性布局中添加一个ImageButton和一个TextView,在表格布局的每一行添加两个TextView和一个ProgressBar,在相对布局中添加两个Button按钮。

(4)创建装备界面activity_shop,使用相对布局,并在相对布局中创建一个线性布局。在相对布局中添加一个View和一个TextView,在线性布局中添加三个TextView。

(5)在程序中创建一个cn.itcast.domain包,在该包中创建一个ItemInfo类,用于封装装备信息。

(6)创建ShopActivity用来展示装备信息,当单击ShopActivity的装备时,会调回MainActivity并将装备信息回传给MainActivity。

3.案例实现代码

1)mainActivity

package cn.edu.bzu.a34lab5;
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;
import static cn.edu.bzu.a34lab5.R.layout.activity_shop;
public class MainActivity extends AppCompatActivity {
     ProgressBar pb1;
    ProgressBar pb2;
    ProgressBar pb3;
    TextView tv_life;
    TextView tv_atk;
    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,ShopActivity.class);
        //开启一个页面并且要开启这个页面的返回数据
        startActivityForResult(intent,1);
    }
    public void Click2(View v){
        Intent intent=new Intent(this,ShopActivity.class);
        //开启一个页面并且要开启这个页面的返回数据
        startActivityForResult(intent,1);
    }
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
        if(resultCode==10){
            //(1)代表数据来源于ShopActivity 取数据
           ItemInfo itemInfo=(ItemInfo) data.getExtras().get("itemInfo");
            //(2)更新一下ui
            updateProgressBar(itemInfo);
        }
        super.onActivityResult(requestCode,resultCode,data);
    }
    //更新当前控件的ui
    private void updateProgressBar(ItemInfo itemInfo){
       //(1)获取当前progressbar的进度
        int progress1=pb1.getProgress();
        int progress2=pb2.getProgress();
        int progress3=pb3.getProgress();
        //(2)更新一下progressbar的进度
        pb1.setProgress(progress1+itemInfo.getLife());
        pb2.setProgress(progress2+itemInfo.getAttack());
        pb3.setProgress(progress3+itemInfo.getQuick());
        //(3)更新一下Textview的值
        tv_life.setText(pb1.getProgress()+"");
        tv_atk.setText(pb2.getProgress()+"");
        tv_quick.setText(pb3.getProgress()+"");
    }
}

2)ShopActivity

package cn.edu.bzu.a34lab5;
import android.content.Intent;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import cn.itcast.domain.ItemInfo;
import static cn.edu.bzu.a34lab5.R.id.tv_atk;
import static cn.edu.bzu.a34lab5.R.id.tv_life;
import static cn.edu.bzu.a34lab5.R.id.tv_speed;
public class ShopActivity extends AppCompatActivity implements View.OnClickListener {
    ItemInfo itemInfo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载布局
        setContentView(R.layout.activity_shop);
        findViewById(R.id.rl).setOnClickListener(this);
        //(1)初始化显示到界面上的数据
        itemInfo=new ItemInfo("金剑",20,100,20);
        //(2)找到控件显示数据
        TextView tv_name=(TextView)findViewById(R.id.tv_name);
        TextView tv_life=(TextView) findViewById(R.id.tv_life);
        TextView tv_attack=(TextView) findViewById(R.id.tv_attack);
        TextView tv_speed= (TextView) findViewById(R.id.tv_speed);
        //(3)初始化一下数据展示到控件上
        tv_name.setText(itemInfo.getName());
        tv_attack.setText("攻击力:"+itemInfo.getAttack());
        tv_life.setText("生命力:"+itemInfo.getLife());
        tv_speed.setText("敏捷度:"+itemInfo.getQuick());
    }
    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.rl: //证明我们点击的就是这个布局
                //(1)获取当前的数据把itemInfo数据返回
               Intent intent= new Intent();
                intent.putExtra("itemInfo",itemInfo);
                //把结果返回给调用者(mainActivity)  通过onActivityResult方法返回
                setResult(10,intent);
                //(2)关闭当前页面,通过onActivityResult方法把数据返回
                finish();
                break;
            default:
                break;
        }
    }
}

3)ItemInfo

package cn.itcast.domain;
import android.content.Intent;
import java.io.Serializable;
/**
 * Created by 17862 on 2017/3/26.
 */
public class ItemInfo implements Serializable{
    private String name;
    private int  life;
    private int  attack;
    private int  quick;
    public ItemInfo(String name,int life,int attack,int quick){
        super();
        this.name=name;
        this.life=life;
        this.attack=attack;
        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 getAttack() {
        return attack;
    }
    public void setAttack(int attack) {
        this.attack = attack;
    }
    public int getQuick() {
        return quick;
    }
    public void setQuick(int quick) {
        this.quick = quick;
    }
}

4)创建装备选择页面,程序界面对应布局文件activity_mian.xml如下所示(用的LinearLayout布局中嵌套了RelativeLayout和TableLayout布局):

<?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.a34lab5.MainActivity">
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/baby"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="45dp"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="主人,快来给小宝宝购买装备吧!"
        android:gravity="center_horizontal"
        android:textSize="18sp"/>
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="25dp"
        >
        <!-- 第1行-->
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="生命值:" />
            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar1" />
            <TextView
                android:id="@+id/tv_life"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="20dp"
                android:text="80"/>
        </TableRow>
        <!-- 第2行-->
        <TableRow
            android:layout_width="match_parent"
            android:layout_marginTop="10dp"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="攻击力:" />
            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar2" />
            <TextView
                android:id="@+id/tv_atk"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:text="80"/>
        </TableRow>
        <!-- 第3行-->
        <TableRow
            android:layout_width="match_parent"
            android:layout_marginTop="10dp"
            android:layout_height="wrap_content"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="敏捷:" />
            <ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:id="@+id/progressBar3" />
            <TextView
                android:id="@+id/tv_quick"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="80"
                android:layout_marginTop="5dp"/>
        </TableRow>
    </TableLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
      >
        <Button
            android:id="@+id/btn_master"
            android:onClick="Click1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:drawableRight="@android:drawable/ic_menu_add"
            android:drawablePadding="3dp"
            android:text="主人购买装备"
            android:textSize="14sp"
            />
        <Button
            android:id="@+id/btn_baby"
            android:onClick="Click2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:drawableRight="@android:drawable/ic_menu_add"
            android:drawablePadding="3dp"
            android:text="小宝宝购买装备"
            android:textSize="14sp"/>
    </RelativeLayout>
</LinearLayout>

5)创建装备页面,程序界面对应布局文件activity_shop.xml如下所示(用的RelativeLayout布局中嵌套了和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"
    >
    <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: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>
</RelativeLayout>




首先要创建人物属性的主页面:

博文 来自: qq_37738154
没有更多推荐了,返回首页