[英]Transfer from one activity to another
这是我的mainActivity
的代码,并且创建了另一个名为playAgain
活动。 当计时器结束时,我想致电playAgain
以显示我的最终得分并再次播放按钮,当我单击再次播放按钮时,它应该转移到主要活动并将时间设置回30秒,并将得分设置为0/0。
//这是mainActivity
中调用playAgain
活动的函数
public void playAgain(){
score = 0;
numberOfQuestions = 0;
timerTextView.setText("30s");
pointsTextView.setText("0/0");
resultTextView.setText("");
new CountDownTimer(30100, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timerTextView.setText(String.valueOf((millisUntilFinished)/1000) + "s");
}
@Override
public void onFinish() {
timerTextView.setText("0s");
String getFinalScore = Integer.toString(score) + "/" + Integer.toString(numberOfQuestions);
Intent intent = new Intent(getApplicationContext(), PlayAgain.class);
//Create the bundle
Bundle bundle = new Bundle();
//Add your data to bundle
bundle.putString("points", getFinalScore);
//Add the bundle to the intent
intent.putExtras(bundle);
startActivity(intent);
//playAgainButton.setVisibility(View.VISIBLE);
// resultTextView.setText("Your Score: " + Integer.toString(score) + "/" + Integer.toString(numberOfQuestions));
}
}.start();
}
//这是我playAgainActicity中的代码
Button playAgainButton;
TextView finalTextView;
public void playAgain(View view) {
//Get the bundle
Bundle bundle = getIntent().getExtras();
//Extract the data…
String getFinalScore = bundle.getString("points");
finalTextView.setText(getFinalScore);
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
移动此代码:
//Get the bundle
Bundle bundle = getIntent().getExtras();
//Extract the data…
String getFinalScore = bundle.getString("points");
finalTextView.setText(getFinalScore);
到playAgainActicity的onCreate方法。 然后在playAgain
方法中添加finishAffinity
:
public void playAgain(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finishAffinity();
}
MainActivity的代码看起来还可以
请按以下方式更改PlayAgain活动的代码; 并且不要忘记将PlayAgain添加到清单文件中,并为按钮使用android:onClick="playAgain"
。
public class PlayAgain extends AppCompatActivity {
TextView finalTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_again);
//Get the bundle
Bundle bundle = getIntent().getExtras();
//Extract the data…
String getFinalScore = bundle.getString("points");
finalTextView = findViewById(R.id.finalTextView);
finalTextView.setText(getFinalScore);
}
public void playAgain(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
}
希望有帮助!
在您的playAgain
活动中,将此行放入onCreate
方法中
//Get the bundle
Bundle bundle = getIntent().getExtras();
//Extract the data…
String getFinalScore = bundle.getString("points");
finalTextView.setText(getFinalScore);
在按钮的click事件上调用playAgain()
playAgainButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playAgain();
}
});
public void playAgain() {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.