tempText.setText(String.valueOf(tempValue));让他在70到90之间随机变化,每秒刷新一次,每次变化的幅度2%
时间: 2024-04-11 15:29:15 浏览: 20
要实现tempText的值在70到90之间随机变化,并且每秒刷新一次,每次变化的幅度为2%,可以使用以下代码:
```java
private Handler handler = new Handler();
private Runnable runnable;
private double tempValue = 70; // 初始温度值
private double minTemp = 70; // 最小温度值
private double maxTemp = 90; // 最大温度值
private double percentageChange = 0.02; // 变化幅度
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tempText = findViewById(R.id.tempText);
runnable = new Runnable() {
@Override
public void run() {
// 生成随机的变化幅度
double randomChange = (Math.random() * 2 - 1) * percentageChange;
// 计算新的温度值
tempValue += tempValue * randomChange;
// 确保温度值在范围内
if (tempValue < minTemp) {
tempValue = minTemp;
} else if (tempValue > maxTemp) {
tempValue = maxTemp;
}
// 设置新的温度值到tempText
tempText.setText(String.valueOf(tempValue));
// 每秒刷新一次
handler.postDelayed(this, 1000);
}
};
// 开始刷新温度值
handler.post(runnable);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止刷新温度值
handler.removeCallbacks(runnable);
}
```
这段代码首先定义了一些变量,包括初始温度值`tempValue`、最小温度值`minTemp`、最大温度值`maxTemp`和每次变化的幅度`percentageChange`。然后,在`onCreate()`方法中,设置了一个`Runnable`对象,该对象会在每秒钟刷新一次温度值。在`run()`方法中,首先生成一个随机的变化幅度`randomChange`,然后根据变化幅度更新温度值并确保它在指定的范围内。最后,将新的温度值设置到`tempText`上,并通过`handler.postDelayed()`方法延迟1秒后再次调用`run()`方法实现刷新。在`onDestroy()`方法中,移除了之前设置的回调,确保在Activity销毁时停止刷新温度值。请注意,这只是一个简单的示例代码,你可以根据你的需求进行适当的修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)