我正在使用 bundle 获取变量,但它没有更新

I am getting variables with bundle but its not updating

我正在尝试开发计步器。我得到了传感器的步骤,但我需要将它们发送到片段。为此我使用了一个包。 Steps 变量正在传递给片段,但它只获得第一个值。第一个值为零,我在创建变量时给出了该值。这个值正在更新,我在 stepsTextview 上看到了。但捆绑不是。当传感器改变时,我如何获得更新的变量?

Activity代码:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    if (sensorEvent.sensor == stepCounter){
        stepCount = (int) sensorEvent.values[0];
        textView.setText(String.valueOf(stepCount));
        CountStepFragment fragment = new CountStepFragment();
        Bundle bundle = new Bundle();
        bundle.putInt("Adım", stepCount);
        fragment.setArguments(bundle);
    }

}

片段代码:

Bundle bundle = this.getArguments();
    if (bundle != null) {
        myInt = bundle.getInt("Adım",0);
        Log.i("sda",String.valueOf(myInt));

    }

你在这里做的是传递那个变量一次

Bundle bundle = new Bundle();
bundle.putInt("Adım", stepCount);
fragment.setArguments(bundle);

只有当您创建片段

时才会发生这种情况

为了在您的片段中实现这一点,您必须找到一种方法在实际片段中实现此代码:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    if (sensorEvent.sensor == stepCounter){
        stepCount = (int) sensorEvent.values[0];
        //now use stepCount to update your fragment
    }

}