我得到的变量与bundle,但它不更新



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

活动代码:

@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
}
}

最新更新