[英]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.