Java 如何将int变量从一个活动中的numberpicker传递到另一个活动?
我在活动1中使用numberpicker让用户选择他们在活动2中随机点击屏幕上的按钮的次数,当他们达到该数字时,它将引导他们进入活动3。我对最后一部分有问题,因为当用户达到他们选择的数字时,它不会将用户发送到活动3。我想这与我在活动1中将数字从数字选择器传递到活动3的代码有关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
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。在这种情况下,您可能应该撤回问题或添加解决方案作为答案。因此,它的存在是为了提供一个可搜索的问题库和解决方案,而不仅仅是为了帮助你个人。不过,我会投票决定结束。关闭后,您将有三天时间添加答案。