繁体   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