java - 为什么仅在文本字段中打印最后一次迭代(999)的值?我希望在被下一个数字替换之前打印所有数字
问题描述
我是新手android studio
,想克服这个问题。
在创建一些未来的应用程序(如秒表、计时器等)时,它会对我有很大帮助。
提前致谢 !!
public class MainActivity extends AppCompatActivity {
private EditText k;
private Button start;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
k=findViewById(R.id.kf);
start=findViewById(R.id.startf);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=1;i<1000;i++)
{
k.setText(String.valueOf(i) );
}
}
});
}
}
解决方案
正如@f1sh 在评论中已经提到的那样,您的 for 循环正在以如此快的速度执行,您所看到的只是最终值。对于这种情况,android
最好的解决方案之一是在Handler
不阻塞 UI 的情况下发布延迟功能。
因此,为了显示 1 到 999,您可以尝试以下操作:
public class MainActivity extends AppCompatActivity {
private EditText k;
private Button start;
int count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
k=findViewById(R.id.kf);
start=findViewById(R.id.startf);
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
if (count < 1000) {
k.setText(String.valueOf(count));
count++;
handler.postDelayed(this, 1000);
} else {
handler.removeCallbacks(this);
}
}
};
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count = 1;
handler.postDelayed(runnable, 0);
}
});
}
}
这会TextView
以 1 秒的延迟不断更改文本,您可以根据需要通过设置可运行的毫秒数来更改延迟。
您甚至可以为此目的使用倒数计时器,但它更像是一种解决方法,需要您计算正确的时间等。例如显示 1 到 10 将是这样的:
...
count = 1;
new CountDownTimer(11000, 1000) {
public void onTick(long millisUntilFinished) {
tv.setText(String.valueOf(count));
count++;
}
public void onFinish() {
}
}.start();
在这里,您每 1 秒显示一次值,持续 11 秒
推荐阅读
- android - Android在PagedList上滑动以关闭Realm本地数据库丢失列表位置
- docker - 是否有任何地方记录的工件的示例 security.import.xml?
- firebase - firebase 函数进行的外部 API 调用的起源是什么?
- android - 使用安卓手机作为服务器
- powerbi - 如何创建将正确值从行解析为列表的新列
- java - RestTemplate 请求中的连接超时无法正常工作
- macos - Hadoop 启动时异常
- javascript - Javascript:有些东西太简单而无法与外部链接?
- ios - Xcode Undefined symbols for architecture x86_64 Kudan iOS
- facebook-graph-api - Facebook OG 不会检索我的照片