0

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

 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个句子,如您所见,它们来自一个数组。

感谢您的帮助

4

2 回答 2

0

在课后定义一个计时器。

静态挥发性 int 时间;定时器 t = new Timer();

现在像这样编辑你的函数

  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);
于 2013-07-05T23:05:46.257 回答
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++”但它没有工作:(

于 2013-07-06T21:35:15.863 回答