簡體   English   中英

從一項活動轉移到另一項活動

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM