在我的recyclerview布局中,我有一个天文台表,“开始”按钮和一个数字,该数字显示了我的设备编号,项目按设备编号排序。当我在位置0添加编号为2的项目并单击开始按钮时,天文台运行正常。但是,当我添加编号为= 1的其他recyclerview项目时,它设置在位置0中,而之前的项目设置在位置1中,而天文钟在位置0上继续!
@Override
public void onBindViewHolder(@NonNull final ControllerViewHolder holder, final int position) {
final DataModelDevice dataModelDevice = dataModelDevices.get(position);
final DataModelSetUpDevice dataModelSetUpDevice = dataModelSetUpDevices.get(position);
holder.textViewcountOfController.setText(String.valueOf(dataModelSetUpDevice.getCountOfController()));
holder.textViewDeviceNumber.setText(String.valueOf(dataModelDevice.getDeviceNumber()));
final long[] timeWhenStopped = {dataModelSetUpDevice.getTimeMiliSeconds()};
holder.textViewStartTimer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.chronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped[0]);
holder.chronometer.start();
holder.chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
long time = SystemClock.elapsedRealtime() - chronometer.getBase();
int h = (int) (time / 3600000);
int m = (int) (time - h * 3600000) / 60000;
int s = (int) (time - h * 3600000 - m * 60000) / 1000;
chronometer.setText(String.format(Locale.getDefault(), "%02d:%02d:%02d", h, m, s));
dataModelSetUpDevice.setTimeMiliSeconds(time);
}
});
}
});}
在那之后,如果我将位置0的项目移开,则计时器将在项目2中继续运行。这意味着,当我第一次将计时器置于位置1时,计时器的位置不会改变。