Java 如何将int变量从一个活动中的numberpicker传递到另一个活动?

Java 如何将int变量从一个活动中的numberpicker传递到另一个活动?,java,android,android-intent,Java,Android,Android Intent,我在活动1中使用numberpicker让用户选择他们在活动2中随机点击屏幕上的按钮的次数,当他们达到该数字时,它将引导他们进入活动3。我对最后一部分有问题,因为当用户达到他们选择的数字时,它不会将用户发送到活动3。我想这与我在活动1中将数字从数字选择器传递到活动3的代码有关 public class DexterityTrainer extends AppCompatActivity { int mreps; @Override protected void onCreate(Bundle

我在活动1中使用numberpicker让用户选择他们在活动2中随机点击屏幕上的按钮的次数,当他们达到该数字时,它将引导他们进入活动3。我对最后一部分有问题,因为当用户达到他们选择的数字时,它不会将用户发送到活动3。我想这与我在活动1中将数字从数字选择器传递到活动3的代码有关

public class DexterityTrainer extends AppCompatActivity {

int mreps;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dexterity_trainer);


    NumberPicker np = findViewById(R.id.repnum);
    np.setMinValue(5);
    np.setMaxValue(100);
    np.setOnValueChangedListener(onValueChangeListener);
}


    NumberPicker.OnValueChangeListener onValueChangeListener = new NumberPicker.OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        mreps = picker.getValue();

    }
};


// takes you back to first screen
public void goHome(View view){
    Intent startHome = new Intent(this, MainActivity.class);
    startActivity(startHome);
}
// Should start 2nd Activity and pass variable
public void startdex(View view){
    Intent dexAct = new Intent(this, DexterityActivity.class);
    getIntent().putExtra("reps", mreps);
    startActivity(dexAct);
}
活动2随后开始

public class DexterityActivity extends AppCompatActivity {

public int mcount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dexterity);

    final TextView displaycount = findViewById(R.id.displaycount);
    final Button btn = findViewById(R.id.tap_button);
    int reps = getIntent().getIntExtra("reps", -1);


    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mcount++;
            displaycount.setText(Integer.toString(mcount));
        }
    });


    final DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    final Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Random R = new Random();
                    final float dx = R.nextFloat() * displaymetrics.widthPixels;
                    final float dy = R.nextFloat() * displaymetrics.heightPixels;
                    final Timer timer = new Timer();
                    btn.animate()
                            .x(dx)
                            .y(dy)
                            .setDuration(0)
                            .start();
                }
            });
        }
    }, 0, 1500);


    Intent startlog = new Intent(DexterityActivity.this, TherapyLog.class);


    if (reps == mcount){
        startActivity(startlog);
    }



}

起初我认为if语句可能有问题,但如果我将默认值设置为0,它将在活动1解决问题后立即启动活动3。在这种情况下,您可能应该撤回问题或添加解决方案作为答案。因此,它的存在是为了提供一个可搜索的问题库和解决方案,而不仅仅是为了帮助你个人。不过,我会投票决定结束。关闭后,您将有三天时间添加答案。