这个是书上的一个案例,我将其完善了一点而已

xml

显示创建一个xml的主界面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?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="sorgs.com.selectequipment.MainActivity">
<ImageView
android:id="@+id/pet_imgv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp"
android:layout_marginTop="30dp"
android:src="@drawable/body"/>
<TextView
android:id="@+id/pet_dialog_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
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_marginBottom="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_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="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_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">
<Button
android:id="@+id/btn_master"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="click1"
android:drawablePadding="3dp"
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:onClick="click2"
android:drawablePadding="3dp"
android:text="小宝宝购买装备"
android:textSize="14sp"/>
</RelativeLayout>
</LinearLayout>

然后在创建一个购买装备购买的页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/r1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="30dp"
android:layout_height="30dp"
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>

JAVA

然后创建一个Itemfnfo类,用来封装装备信息

接着写代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package sorgs.com.domain;
import java.io.Serializable;
/**
* Created by Administrator on 2016/11/20.
*/
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;
}
@Override
public String toString() {
return "[" + "name='" + name + ", acctack=" + acctack + ", life=" + life
+ ", speed=" + speed + "]";
}
}

然后创建一个shopactivity,用来展示主人装备信息的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package sorgs.com.selectequipment.sorgs.com;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import sorgs.com.domain.ItemInfo;
import sorgs.com.selectequipment.R;
/**
* Created by Administrator on 2016/11/20.
*/
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);
//TextView 显示字符串,这里传入int值编译不会报错,运行会出错
mLifeTV.setText("生命值+"+itemInfo.getLife());
mNameTV.setText(itemInfo.getName());
mSpeedTV.setText("敏捷度+"+itemInfo.getSpeed());
mAttackTV.setText("攻击力+"+itemInfo.getAcctack());
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.r1:
Intent intent = new Intent();
intent.putExtra("equipment",itemInfo);
setResult(1,intent); //设置请求码
finish();
break;
}
}
}

再建立一个shopactivity2,用来放宝宝购买装备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package sorgs.com.selectequipment.sorgs.com;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import sorgs.com.domain.ItemInfo;
import sorgs.com.selectequipment.R;
/**
* Created by Administrator on 2016/11/20.
*/
public class ShopActivity2 extends Activity implements View.OnClickListener{
private ItemInfo itemInfo;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
itemInfo = new ItemInfo("银剑",50,10,10);
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);
//TextView 显示字符串,这里传入int值编译不会报错,运行会出错
mLifeTV.setText("生命值+"+itemInfo.getLife());
mNameTV.setText(itemInfo.getName());
mSpeedTV.setText("敏捷度+"+itemInfo.getSpeed());
mAttackTV.setText("攻击力+"+itemInfo.getAcctack());
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.r1:
Intent intent = new Intent();
intent.putExtra("equipment",itemInfo);
setResult(2,intent); //设置请求码
finish();
break;
}
}
}

最后编写我们的主函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package sorgs.com.selectequipment;
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 sorgs.com.domain.ItemInfo;
import sorgs.com.selectequipment.sorgs.com.ShopActivity;
import sorgs.com.selectequipment.sorgs.com.ShopActivity2;
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); //设置最大的值1000
mProgressBar2.setMax(1000);
mProgressBar3.setMax(1000);
}
public void click1(View view){ //开启新的activity并且想获取他的返回值
Intent intent = new Intent(this, ShopActivity.class);
startActivityForResult(intent,1); //返回请求结果,请求码为1
}
public void click2(View view){ //开启新的activity并且想获取他的返回值
Intent intent = new Intent(this, ShopActivity2.class);
startActivityForResult(intent,2); //返回请求结果,请求码为2
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {//获取ShopActivity的装备信息
super.onActivityResult(requestCode, resultCode, data);
if (data != null){
if (resultCode==1){ //判断结果码是否等于1,等于1为主人添加装备
if (requestCode == 1){
ItemInfo info = (ItemInfo) data.getSerializableExtra("equipment");
updateProgress(info); //更新ProgressBar的值
}
}
else if (requestCode == 2){//判断结果码是否等于2,等于2为宝宝添加装备,
if (requestCode == 2){
ItemInfo info = (ItemInfo) data.getSerializableExtra("equipment");
updateProgress2(info); //更新ProgressBar的值
}
}
}
}
private void updateProgress2(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()+"");
}
private void updateProgress(ItemInfo info) { //更新ProgressBar的值
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()+"");
}
}

配置

最后一步,去配置清单里面去配置一下

效果