当前位置: 首页 > 知识库问答 >
问题:

在runInUiThread中使用setText时出错[重复]

舒博雅
2023-03-14

我需要一个线程等待一段时间,然后在TextView中更改文本。我的搜索找到了如何使用runOnUiThread

public class MainActivity extends AppCompatActivity {

    public int i = 0;
    private TextView mText;
    private Thread thread;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mText = (TextView)findViewById(R.id.text);
    }

    public void start (View v) {
        runThread();


    }

    private void runThread() {

        new Thread() {
            public void run() {
                while (true) {
                    try {
                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                i++;
                                mText.setText((i));
                            }
                        });
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
    }

}
09-26 20:26:34.054 22254-22254/com.horizon.testtimerthread E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             android.content.res.Resources$NotFoundException: String resource ID #0x1
                                                                                 at android.content.res.Resources.getText(Resources.java:1058)
                                                                                 at android.support.v7.widget.ResourcesWrapper.getText(ResourcesWrapper.java:52)
                                                                                 at android.widget.TextView.setText(TextView.java:3866)
                                                                                 at com.horizon.testtimerthread.MainActivity$1$1.run(MainActivity.java:39)
                                                                                 at android.os.Handler.handleCallback(Handler.java:615)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                 at android.os.Looper.loop(Looper.java:177)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:4947)
                                                                                 at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                 at java.lang.reflect.Method.invoke(Method.java:511)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
                                                                                 at dalvik.system.NativeStart.main(Native Method)

提前感谢您的帮助。

共有1个答案

邓阳炎
2023-03-14

mtext.settext((i))是问题所在。

Android认为您引用的是一个字符串ID,并崩溃了,因为它找不到ID为1的字符串。如果你想把文本设置为“1”,“2”等······然后编写mtext.settext((integer.tostring(i)))

 类似资料:
  • 当我试图执行这条语句时,出现了错误。我创建了一个包含表名的数组mem[],每个表中有两列,分别是amt(float(9,2))和comb(varchar(5))。 我在for循环中使用了这个语句: 错误: 通用域名格式。mysql。jdbc。例外情况。jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在第1行“akhi

  • 我有一个熊猫数据框,它的键是日期。我正在尝试通过访问多行 , 但是我犯了一个错误

  • 问题内容: 我正在尝试获取特定目录中的文件列表,并计算目录中的文件数。我总是收到以下错误: 我的代码是: 我按照此处给出的代码示例进行操作。 我在Pyscripter上运行Python脚本,并且目录/ client_side /确实存在。我的python代码位于根文件夹中,并且有一个名为“ client_side”的子文件夹。有人可以帮我吗? 问题答案: 我决定将代码更改为: 并使用以下调用代码:

  • 无效的流头:0000002b at java.io.objectinPutStream.ReadStreamHeader(ObjectinPutStream.java:781)at java.io.objectinPutStream.(ObjectinPutStream.java:278)at servicerEquest.run(servicerEquest.java:24)at java.ut

  • 目前,我正在尝试将JWT身份验证集成到现有的Spring Boot Webflux项目中。作为模板,我使用了这篇媒体文章:https://medium.com/@ard333/authentication-and-authorization-using-jwt-on-spring-webflux-29b81f813e78。如果我将注释@EnableWebFluxSecurity放在我的WebSec