gpt4 book ai didi

android - CountDownTimer 错误地将文本设置为比请求更多的 View

转载 作者:行者123 更新时间:2023-11-29 23:42:29 24 4
gpt4 key购买 nike

CountDownTimer onFinish 方法中,我想像这样将 2 个字符串设置为 2 个不同的 View

public void onFinish() {
setText(timer, getString(R.string.times_up));
setText(speedTextView, speedValue);

setColorTimer(timer, Color.RED);

runOnUiThread(new Runnable() {
public void run() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(), ResultActivity.class);
startActivity(intent);
}
}, 3000);
}
});
}

但是,当计时器结束时,R.string.times_up 值将同时转换到 timerspeedTextView View 。我更改了两行的顺序,在这种情况下,speedValue 被转换到两个 View 上,尽管它们应该是 2 个不同的方法调用。

setText 方法是一种修改后的方法,可以在主线程上运行它们,而不是像这样在后台线程上运行

private void setText(final TextView text, String value) {
speedValueToSetText = value;
runOnUiThread(new Runnable() {
@Override
public void run() {
text.setText(speedValueToSetText);
}
});
}

我该如何解决这个问题? setText 方法不应该相互独立吗?

最佳答案

全局变量 speedValueToSetText 导致错误。删除此行 speedValueToSetText = value;setText 应该是

private void setText(final TextView text, String value) {

runOnUiThread(new Runnable() {
@Override
public void run() {
text.setText(value);
}
});

private void setText(final TextView text, String value) {
speedValueToSetText = value;
final String resultValue = value;
runOnUiThread(new Runnable() {
@Override
public void run() {
text.setText(resultValue);
}
});
}

关于android - CountDownTimer 错误地将文本设置为比请求更多的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51741471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com