Android 计时器达到特定时间时显示文本
我正在制作一个应用程序,当你按下按钮时会显示随机的句子,这个过程是完美的,我的部分代码是:Android 计时器达到特定时间时显示文本,android,timer,settext,chronometer,Android,Timer,Settext,Chronometer,我正在制作一个应用程序,当你按下按钮时会显示随机的句子,这个过程是完美的,我的部分代码是: botonok.setOnClickListener(new OnClickListener() { public void onClick(View v) { Resources res = getResources(); myString = res.getStringArray(R.array.myArra
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个句子,你可以看到,它们来自一个数组
感谢您在课后帮助定义计时器 静态时间; 定时器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);
谢谢你,我刚刚写了你的代码,它工作了!!我必须做一些更改,因为有更多的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) ;
;}
});}}
但是,有一个小错误,我第一次触摸botton时,时间是2,4,6,8,但每次我触摸它,它都会变快,我写了一个条件“countTouch++”,但它不起作用:(谢谢你,我写了你的代码,它工作了!!我必须做一些更改,请阅读我的答案。.谢谢你的赞赏!如果你能详细说明你说的更快是什么意思,那么我可能会帮助你,这个代码很好,但是每次我按下按钮,时间都会变短,第一次是(2,4,6,8),sencod时间是(1/2,1,1/2,2)一直到我差不多在同一时间得到它们…我不知道为什么。。