[AndroidJava]学习安卓,布局只工作一次
我正在学习如何制作安卓应用程序,作为我的第一个项目,我正在尝试制作一个愚蠢的游戏哈哈
当我进行第二项活动时,游戏会按原样运行(如下图所示) http://i.imgur.com/BBllAJU.png?1
总比什么都没变,分数,数字,但所有的祝酒词都还在
package com.example.moshik.whatisbigger;
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.support.v7.widget.Toolbar;
import 安卓.text.DynamicLayout;
import 安卓.text.Layout;
import 安卓.view.View;
import 安卓.widget.TextView;
import 安卓.widget.Toast;
import java.util.Random;
public class NormalModeActivity1 extends AppCompatActivity {
int Score = 0;
boolean AnswerBig = false;
boolean AnswerEqual = false;
boolean AnswerSmall = false;
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_normal_mode1);
Random rnd = new Random();
while (counter < 5) {
int Number1 = rnd.nextInt(99) + 1;
TextView X = (TextView) findViewById(R.id.XNumber);
String Xstring = String.valueOf(Number1);
X.setText(Xstring);
int Number2 = rnd.nextInt(99) + 1;
TextView Y = (TextView) findViewById(R.id.YNumber);
String Ystring = String.valueOf(Number2);
Y.setText(Ystring);
if (Number1 > Number2) {
AnswerBig = true;
}
if (Number1 == Number2) {
AnswerEqual = true;
}
if (Number1 < Number2) {
AnswerSmall = true;
}
findViewById(R.id.Bigger).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (AnswerBig) {
Toast.makeText(NormalModeActivity1.this, "(BIG)You are RIGHT!", Toast.LENGTH_SHORT).show();
Score++;
AnswerBig = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(BIG)You were WRONG!", Toast.LENGTH_SHORT).show();
}
}
});
findViewById(R.id.Equal).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (AnswerEqual) {
Toast.makeText(NormalModeActivity1.this, "(Equal)You were RIGHT!", Toast.LENGTH_SHORT).show();
Score++;
AnswerEqual = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Equal)You were WRONG!", Toast.LENGTH_SHORT).show();
}
}
});
findViewById(R.id.Smaller).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (AnswerSmall)
{
Toast.makeText(NormalModeActivity1.this, "(Small)You were RIGHT!", Toast.LENGTH_SHORT).show();
Score++;
AnswerSmall = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Small)You were WRONG!", Toast.LENGTH_SHORT).show();
}
}
});
TextView score = (TextView) findViewById(R.id.ScoreDisplay);
String ScoreShow;
ScoreShow = String.valueOf(Score);
score.setText("Your Score Is: " + ScoreShow);
counter++;
if (counter > 5)
{
score.setText("ItsOver!!!");
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:fitsSystemWindows="true"
tools:context="com.example.moshik.whatisbigger.NormalModeActivity1">
<include layout="@layout/content_normal_mode1" />
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:textSize="30sp"
安卓:id="@+id/ScoreDisplay"
安卓:layout_alignParentTop="true"
安卓:layout_centerHorizontal="true"
安卓:layout_marginTop="60dp">
</TextView>
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:id="@+id/XNumber"
安卓:layout_centerVertical="true"
安卓:layout_toLeftOf="@+id/ScoreDisplay"
安卓:layout_toStartOf="@+id/ScoreDisplay"
安卓:textSize="20sp">
</TextView>
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:id="@+id/YNumber"
安卓:layout_alignTop="@+id/XNumber"
安卓:layout_toRightOf="@+id/ScoreDisplay"
安卓:layout_toEndOf="@+id/ScoreDisplay"
安卓:textSize="20sp">
</TextView>
<Button
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:id="@+id/Bigger"
安卓:layout_marginTop="121dp"
安卓:hint="@string/BIG"
安卓:layout_below="@+id/XNumber"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentStart="true">
</Button>
<Button
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:id="@+id/Equal"
安卓:layout_alignTop="@+id/Bigger"
安卓:layout_centerHorizontal="true"
安卓:hint="@string/EQUAL">
</Button>
<Button
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:id="@+id/Smaller"
安卓:hint="@string/SMALL"
安卓:layout_alignTop="@+id/Equal"
安卓:layout_alignParentRight="true"
安卓:layout_alignParentEnd="true">
</Button>
以下是布局和活动本身。 你能找到这里的问题或我错过了什么吗?,非常感谢:)
# 1 楼答案
你永远不会更新你的分数。首先将其更改为类字段,以便在回调中更容易访问
然后在
onCreate
方法中:然后在增加分数后更新每个回调click listener中的文本:
另外,我会更新变量名,使其更加不同,因为使用
Score
表示int,使用score
表示TextView
会让人困惑显示类字段的更新: