如何将一个int类型的全局变量的值从一个activity传递到另一个activity并显示在textview中?

How to transfer the value of a int type global variable from one activity to another activity and show it in textview?

/* 我已经声明了一个全局变量 plusMarks 并在 checkAnswer() 方法中使用了这个变量并调用了这个方法。 */

private int plusMarks=0;

  //  private int minusMarks=0;


 //   private int TotalScore;

    @SuppressLint("SetTextI18n")

    private void checkAnswer(boolean userPressed) {

        boolean answerProvided = mQuestionBank[mCurrentIndex].isQuestionTrueAnswer();

        //int messageStringId = 0;



        if (answerProvided == userPressed) {

          //  messageStringId = R.string.correct_toast;

            mGreenTick.setImageResource(R.drawable.green_tick);

            mGreenTick.setVisibility(View.VISIBLE);

            plusMarks++;

        }

        else {

          //  messageStringId = R.string.incorrect_toast;

            mGreenTick.setImageResource(R.drawable.red_cross);

         
   mGreenTick.setVisibility(View.VISIBLE);

          //  minusMarks++;

        }

      //  TotalScore = plusMarks - minusMarks;

        mScoreTextview.setText("Your Score is = " + plusMarks + " Marks out of 10 Marks");


        //  Toast.makeText(MainActivity.this, messageStringId, Toast.LENGTH_SHORT).show();

    }

/* 我已经在两个按钮中调用了 checkAnswer() 方法 我创建了一个新的 activity ScoreActivity,我想在新的 activity 文本视图中传输变量 plusMarks 的值。但不幸的是,经过多次尝试,我无法做到这一点,它在我的文本视图中显示了 null 值。请帮助我并解决这个问题 */

  mScoreButton = (Button)findViewById(R.id.score_button);

        mScoreButton.setVisibility(View.INVISIBLE);

        mScoreButton.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                **Intent intent = new Intent(MainActivity.this, ScoreActivity.class);
                  startActivity(intent);
                  intent.putExtra("PLUS_MARKS", plusMarks);
                  finish();**

            }

        });


This is the new activity i have created


public class ScoreActivity extends AppCompatActivity {

    private TextView mFinalMarks;


    private Button mExitApp;

    private Intent PLUS_MARKS;

    @SuppressLint("SetTextI18n")

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_score);

        mFinalMarks = (TextView)findViewById(R.id.final_marks);

       // mFinalMarks.setText("Final Score is: " + getIntent().getStringExtra("PLUS_MARKS") + "Marks 

满分 10");

      //  mFinalMarks.setText(getIntent().getStringExtra("PLUS_MARKS"));

        **mFinalMarks.setText("Final Score is: " + getIntent().getStringExtra("PLUS_MARKS"));**

/*我想在新的 activity textview mFinalMarks 中转移全局变量 plusMarks 的值。 我已经尝试了很多,但它显示的是空值。请帮我。还要求编辑代码以便更好地理解。 */

现代方式是使用 - ActivityResultApi

您必须在 Intent 之前将“extra”放在 您调用 startActivity() 之前。你有:

startActivity(intent);
intent.putExtra("PLUS_MARKS", plusMarks);

您需要这样做:

intent.putExtra("PLUS_MARKS", plusMarks);
startActivity(intent);

注意:此外,您没有“全局变量”。 plusMarks是一个class的私有成员变量。 Java 中的“全局变量”将被声明为 public static 以便它可以被任何 class.

直接访问