我在第一个活动中声明了int score = 100并将其用于我的第二个活动,现在int得分在第二个行为中被声明为数组。但是它在本地变量中声明,那么我如何才能将它用于我的第三个活动呢?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_level2);
ans1 = findViewById(R.id.ans1);
btn1 = findViewById(R.id.btn1);
Intent i = getIntent();
final int[] score2 = {i.getIntExtra("fscore", 0)};
scr1 = (TextView) findViewById(R.id.scr1);
scr1.setText(String.valueOf(score2[0]));
btn1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
String answer = ans1.getText().toString();
if (score2[0] == 0)
{
Toast.makeText(getApplication(),"You Lose!", Toast.LENGTH_SHORT).show();
gameover();
}
else
{
if (answer.equalsIgnoreCase("ANSWER2"))
{
Toast.makeText(getApplication(),"CORRECT!!", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplication(),"Wrong Answer -10 Points", Toast.LENGTH_SHORT).show();
score2[0] = score2[0] - 10;
scr1.setText(String.valueOf(score2[0]));
}
}
}
});
}
public void gameover()
{
Intent intent = new Intent(this, gameover.class);
startActivity(intent);
}
}
答案 0 :(得分:0)
如果您希望在游戏中获得分数,那么您的功能主体应如下所示:
Intent intent = new Intent(this, gameover.class).putExtra("score",yourIntValue);
startActivity(intent);
在您的第二项活动中:
intent.getIntExtra("score", defValue); // store in a variable or add in an array
它将为您提供传递的int值,您可以将其添加到数组中,也可以使用与上面相同的方法将其传递给第三个活动。
有一件事我注意到你有一个int数组,因为你试图让变量final
在内部函数中使用吗?
final int[] score2 = {i.getIntExtra("fscore", 0)};
如果您多次使用相同的值,为什么不使用私有访问声明全局范围变量。
private int score2;
为其分配一个值 final int [] score2 = {i.getIntExtra(" fscore",0)}; ,
score2 = i.getIntExtra("fscore",0);
现在随时随地使用得分。这里不需要采取阵列