当我按下一个按钮时,我正在制作一个显示随机句子的应用程序,这个过程很完美,我的代码的一部分是:
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个句子,它们来自一个数组。
感谢您的帮助
答案 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 ++”但它没有工作:(