计时器到达特定时间时显示文本

时间:2013-07-05 22:24:39

标签: android timer settext chronometer

当我按下一个按钮时,我正在制作一个显示随机句子的应用程序,这个过程很完美,我的代码的一部分是:

 botonok.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {
            Resources res = getResources();
            myString = res.getStringArray(R.array.myArray); 
            String a = myString[rgenerator.nextInt(myString.length)];
            TextView elemento1 = (TextView) findViewById(R.id.elemento1);
            elemento1.setText(a);

...

问题,我需要逐渐出现这些句子,例如,第一句“elemento1”应该出现在你点击按钮,第二句,半秒后,第三句,一秒后......我有你可以看到4个句子,它们来自一个数组。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

在课程后定义一个计时器。

静态volatile int时间; 定时器t =新定时器();

现在就像这样编辑你的功能

  botonok.setOnClickListener(new OnClickListener() 
{
    public void onClick(View v) 
    {
        Resources res = getResources();
        myString = res.getStringArray(R.array.myArray); 
        String a = myString[rgenerator.nextInt(myString.length)];
        time=1;

        t.scheduleAtFixedRate(new TimerTask() {

        @Override
        public void run() {

            runOnUiThread(new Runnable() {


                public void run() {
        TextView elemento1 = (TextView) findViewById(R.id.elemento1);
        if(time==0||time==2||time==4||time==6)
        elemento1.setText(a);
        time=time+1;
        }
                }

            });

        }
    }, 100, 1000);

答案 1 :(得分:0)

谢谢,我刚刚编写了你的​​代码,它的工作原理!我不得不做一些改变,因为有更多的textView,我的代码是这样的:

botonok.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {
time=1; 
            t.scheduleAtFixedRate(new TimerTask() {
                public void run() {
                    runOnUiThread(new Runnable() {
                        public void run() {
                            if(time==2){
                      Resources res = getResources();
         myString = res.getStringArray(R.array.myArray);    
         String a = myString[rgenerator.nextInt(myString.length)];          
     TextView elemento1 = (TextView) findViewById(R.id.elemento1);
            elemento1.setText(a);
                            }
                            //
                        if(time==4){
                      Resources res = getResources();
          myString = res.getStringArray(R.array.myArray2); 
         String b = myString[rgenerator.nextInt(myString.length)];
     TextView elemento2 = (TextView) findViewById(R.id.elemento2);
            elemento2.setText(b);

//这里我为(elemento3和elemento4)写了相同的过程 //然后我写下最后一行:

}time=time+1; 
                        }
                    });
        }
}, 100, 1000)   ;
            ;}
});}}

但是,有一点错误,第一次触摸按钮,时间是2,4,6,8但是每次触摸它,它变得更快,我写了条件“countTouch ++”但它没有工作:(