[Android Java]学习Android,布局只工作一次
我正在学习如何制作android应用程序,作为我的第一个项目,我正在尝试制作一个愚蠢的游戏哈哈 当我进行第二项活动时,游戏将按它必须的方式运行(下图) 总比什么都没变好,分数,数字,但所有的祝酒词都会来[Android Java]学习Android,布局只工作一次,java,android,android-activity,Java,Android,Android Activity,我正在学习如何制作android应用程序,作为我的第一个项目,我正在尝试制作一个愚蠢的游戏哈哈 当我进行第二项活动时,游戏将按它必须的方式运行(下图) 总比什么都没变好,分数,数字,但所有的祝酒词都会来 package com.example.moshik.whatisbigger; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity;
package com.example.moshik.whatisbigger;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.DynamicLayout;
import android.text.Layout;
import android.view.View;
import android.widget.TextView;
import android.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!!!");
}
}
}
package com.example.moshik.whatisbeger;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.text.dynamicClayOut;
导入android.text.Layout;
导入android.view.view;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.Random;
公共类NormalModeActivity1扩展了AppCompatActivity{
智力得分=0;
布尔回答big=false;
布尔值AnswerEqual=false;
布尔回答小=假;
int计数器=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u normal\u mode1);
随机rnd=新随机();
while(计数器<5){
整数1=rnd.nextInt(99)+1;
TextView X=(TextView)findViewById(R.id.XNumber);
String Xstring=String.valueOf(Number1);
X.setText(Xstring);
整数2=rnd.nextInt(99)+1;
TextView Y=(TextView)findViewById(R.id.YNumber);
String Ystring=String.valueOf(Number2);
Y.setText(Ystring);
如果(编号1>编号2){
答案大=正确;
}
if(Number1==Number2){
回答相等=正确;
}
如果(编号1<编号2){
回答小=正确;
}
findviewbyd(R.id.biger).setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
如果(回答大){
Toast.makeText(NormalModeActivity1.this,“(大)你是对的!”,Toast.LENGTH\u SHORT.show();
分数++;
回答大=假;
}否则{
Toast.makeText(NormalModeActivity1.this,“(大)你错了!”,Toast.LENGTH\u SHORT.show();
}
}
});
findviewbyd(R.id.Equal).setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
如果(回答相等){
Toast.makeText(NormalModeActivity1.this,“(等于)你是对的!”,Toast.LENGTH\u SHORT.show();
分数++;
回答相等=错误;
}否则{
Toast.makeText(NormalModeActivity1.this,“(等于)你错了!”,Toast.LENGTH\u SHORT.show();
}
}
});
findviewbyd(R.id.Smaller).setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
如果(回答小)
{
Toast.makeText(NormalModeActivity1.this,“(小)你是对的!”,Toast.LENGTH\u SHORT.show();
分数++;
回答小=假;
}否则{
Toast.makeText(NormalModeActivity1.this,“(小)你错了!”,Toast.LENGTH\u SHORT.show();
}
}
});
TextView得分=(TextView)findViewById(R.id.ScoreDisplay);
弦乐表演;
ScoreShow=String.valueOf(分数);
score.setText(“您的分数是:“+ScoreShow”);
计数器++;
如果(计数器>5)
{
score.setText(“ItsOver!!!”);
}
}
}
}
这里是布局和活动本身。
你能找到这里的问题或我错过了什么吗?非常感谢:)你永远不会更新你的分数
TextView
。首先将其更改为类字段,以便在回调中更容易访问
private TextView score;
然后在您的onCreate
方法中:
score = (TextView) findViewById(R.id.ScoreDisplay);
然后在增加分数后更新每个回调单击侦听器中的文本:
Score++;
score.setText("Your Score Is: " + Score);
另外,我会更新变量名,使其更加不同,因为对int使用Score
,而对TextView使用Score
会让人困惑
显示类字段的更新:
public class NormalModeActivity1 extends AppCompatActivity {
int Score = 0;
boolean AnswerBig = false;
boolean AnswerEqual = false;
boolean AnswerSmall = false;
int counter = 0;
TextView X;
TextView Y;
TextView score;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_normal_mode1);
// set class fields
X = (TextView) findViewById(R.id.XNumber);
Y = (TextView) findViewById(R.id.YNumber);
score = (TextView) findViewById(R.id.ScoreDisplay);
Random rnd = new Random();
int Number1 = rnd.nextInt(99) + 1;
String Xstring = String.valueOf(Number1);
X.setText(Xstring);
int Number2 = rnd.nextInt(99) + 1;
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++;
score.setText("Your Score Is: " + Score);
AnswerBig = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(BIG)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
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++;
score.setText("Your Score Is: " + Score);
AnswerEqual = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Equal)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
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++;
score.setText("Your Score Is: " + Score);
AnswerSmall = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Small)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
String ScoreShow;
ScoreShow = String.valueOf(Score);
score.setText("Your Score Is: " + ScoreShow);
}
private void incrementAndCheckCounter() {
counter++;
if (counter > 5)
{
score.setText("ItsOver!!!");
}
}
}
公共类NormalModeActivity1扩展了AppCompatActivity{
智力得分=0;
布尔回答big=false;
布尔值AnswerEqual=false;
布尔回答小=假;
int计数器=0;
文本视图X;
文本视图Y;
文本视图分数;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u normal\u mode1);
//设置类字段
X=(TextView)findViewById(R.id.XNumber);
Y=(TextView)findViewById(R.id.YNumber);
score=(TextView)findViewById(R.id.ScoreDisplay);
随机rnd=新随机();
整数1=rnd.nextInt(99)+1;
String Xstring=String.valueOf(Number1);
X.setText(Xstring);
整数2=rnd.nextInt(99)+1;
String Ystring=String.valueOf(Number2);
Y.setText(Ystring);
如果(编号1>编号2){
答案大=正确;
}
if(Number1==Number2){
回答相等=正确;
}
如果(编号1<编号2){
回答小=正确;
}
findviewbyd(R.id.biger).setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
如果(回答大){
Toast.makeText(NormalModeActivity1.this,“(大)你是对的!”,Toast.LENGTH\u SHORT.show();
分数++;
score.setText(“您的分数是:“+score”);
回答大=假;
}否则{
Toast.makeText(NormalModeActivity1.this,“(大)你错了!”,Toast.LENGTH\u SHORT.show();
public class NormalModeActivity1 extends AppCompatActivity {
int Score = 0;
boolean AnswerBig = false;
boolean AnswerEqual = false;
boolean AnswerSmall = false;
int counter = 0;
TextView X;
TextView Y;
TextView score;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_normal_mode1);
// set class fields
X = (TextView) findViewById(R.id.XNumber);
Y = (TextView) findViewById(R.id.YNumber);
score = (TextView) findViewById(R.id.ScoreDisplay);
Random rnd = new Random();
int Number1 = rnd.nextInt(99) + 1;
String Xstring = String.valueOf(Number1);
X.setText(Xstring);
int Number2 = rnd.nextInt(99) + 1;
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++;
score.setText("Your Score Is: " + Score);
AnswerBig = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(BIG)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
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++;
score.setText("Your Score Is: " + Score);
AnswerEqual = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Equal)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
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++;
score.setText("Your Score Is: " + Score);
AnswerSmall = false;
} else {
Toast.makeText(NormalModeActivity1.this, "(Small)You were WRONG!", Toast.LENGTH_SHORT).show();
}
incrementAndCheckCounter();
}
});
String ScoreShow;
ScoreShow = String.valueOf(Score);
score.setText("Your Score Is: " + ScoreShow);
}
private void incrementAndCheckCounter() {
counter++;
if (counter > 5)
{
score.setText("ItsOver!!!");
}
}
}