试图在Android中添加TextView项目之间延迟时间?

时间:2015-08-07 07:47:01

标签: android

我是新手,所以请提出一个可能形成不佳的问题。我正在开发一个基于文本的应用程序/游戏,我想向用户显示文本,让几秒钟过去,然后向用户显示更多文本。这将重复,直到有一个决策点,此时将向用户显示两个按钮。

我已经使用下面的代码显示所有消息,然后是两个按钮,但是,我无法弄清楚如何在TextViews之间放置三秒钟的延迟(在for循环结束时我在哪里我认为它会发表评论)。理想情况下,用户会得到一些消息,比如Bob在3秒内打字,一旦延迟结束就会消失。我试过使用{ {1}}注释表明我想要延迟,但它只是让我的应用程序在显示UI之前等待24秒(3秒x 8个循环中的项目)。

另外,我应该在onCreate中这样做,还是有更合适的方式?

谢谢你。

Thread.sleep(3000)

2 个答案:

答案 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;
}