我是新手,所以请提出一个可能形成不佳的问题。我正在开发一个基于文本的应用程序/游戏,我想向用户显示文本,让几秒钟过去,然后向用户显示更多文本。这将重复,直到有一个决策点,此时将向用户显示两个按钮。
我已经使用下面的代码显示所有消息,然后是两个按钮,但是,我无法弄清楚如何在TextViews之间放置三秒钟的延迟(在for循环结束时我在哪里我认为它会发表评论)。理想情况下,用户会得到一些消息,比如Bob在3秒内打字,一旦延迟结束就会消失。我试过使用{ {1}}注释表明我想要延迟,但它只是让我的应用程序在显示UI之前等待24秒(3秒x 8个循环中的项目)。
另外,我应该在onCreate中这样做,还是有更合适的方式?
谢谢你。
Thread.sleep(3000)
答案 0 :(得分:2)
当您使用Thread.sleep()时,您将阻止UI线程,因此您的UI不会更改。所以不要使用该功能。你可以使用这样的处理程序
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
public void run()
{
// Actions to do after 3 seconds
}
}, 3000);
答案 1 :(得分:1)
您需要使用处理程序
Handler handler1 = new Handler();
int i = 0;
TextView addedTextView = new TextView(this);
for(String text : storyArray1)
{
handler1.postDelayed(new Runnable() {
@Override
public void run()
{
addedTextView.setText(text);
addedTextView.setBackgroundDrawable(getResources().getDrawable(R.drawable.storystyle));
addedTextView.setTextAppearance(ActivityName.this, R.style.story_item);
addedTextView.setLayoutParams(params);
textLinearLayout.addView(addedTextView);
}
}, 3000 * i );
i += 1;
}