Android Studio EditText更新

标签 android

我是 Android 的初学者。

我编写了一个简单的代码,我想在 textView 中以 1 秒的步长显示一系列“hello 1”、“hello 2”...“hello 5”。但是,每次只出现最后一个“hello 5”。任何人都可以帮助我修改我的代码以在 textView 中显示所有中间词以 1 秒的停顿相互改变(从“hello 1”到“hello 5”)。

提前致谢!

View.OnClickListener onClickListener_button1 = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for(int i=1; i<= 5; i++){
                textView.setText("hello " + i);

                try{Thread.sleep(1000);
                } catch(Exception e){
                }
            }
}

最佳答案

代码实际上正在运行并将您的字段内容从:hello 1 更​​改为 hello 2 再到 hello 3 等。您只是没有机会看到它,因为 UI 未更新。

您的代码的问题在于您使用了 Thread.Sleep() ,它会阻塞 (UI) 线程,因此当 UI 不再卡住时,只会显示最后一个 hello 5。

看看这篇文章的替代方案:

Wait some seconds without blocking UI execution

关于Android Studio EditText更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329441/

相关文章:

android - 使用带有任何图片的 map View ?

没有谷歌播放服务的安卓设备

android - 您可以将子文件夹添加到 Eclipse Android 项目中的布局吗?

android - 在 manifest.json 中添加了图标,但在启动画面中没有图标

java - 在 Android 的 SQLite 数据库中保存 ArrayList

java - message.obj 的含义 [android 网络]

java - 无法调用方法 FirebaseApp.delete()

Android ListView addHeaderView() nullPointerException 用于 XML 中定义的预定义 View

android - 使用媒体播放器播放音频时,Android显示动画

android - 使用 MediaPlayer 多次播放同一个文件并重叠