java有时在显示正确数量的数字后会出现一个数字
我有一个应用程序,每472毫秒显示一个随机数5次。每件事都能正常工作,除了有时看似随机的第6个数字出现不到472毫秒,我不知道为什么。我把我的计数设置为6,这样第6个数字就不会出现并清除屏幕
我的Java:
import 安卓.annotation.SuppressLint;
import 安卓.os.Bundle;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.view.View;
import 安卓.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.安卓.schedulers.AndroidSchedulers;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@SuppressLint("CheckResult")
public void display_numbers(View view) {
final List<Integer> randomNumbers = new ArrayList<>();
Observable.intervalRange(0, 6, 2000, 472, TimeUnit.MILLISECONDS)
.map(aLong -> {
int previous = randomNumbers.size() > 0 ? randomNumbers.get(
randomNumbers.size() - 1) : -1;
int randomNumber = generateRandomNumber();
while (randomNumber == previous) randomNumber =
generateRandomNumber();
randomNumbers.add(randomNumber);
return randomNumber;
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(integer -> {
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(String.valueOf(integer));
}, error -> {}, () -> {
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("");
});
}
private int generateRandomNumber() {
Random r = new Random();
int minNumber = 1;
int maxNumber = 9;
return r.nextInt((maxNumber - minNumber) + 1) + minNumber;
}
}
共 (0) 个答案