我遇到onFinish()方法的问题,我想在倒计时完成时会调用一个改变我的屏幕信息的函数,而不是一次调用一次调用。
这是onFinish()方法的代码:
@Override
public void onFinish()
{
if(numPreg+1<opcElegida)
{
Log.i("","numPreg: "+numPreg);
todo.get(numPreg-1).setRespD("");
timer.onTick(45000);
displayListView();
}
else
{
Intent intent = new Intent(Test.this, Soluciones.class);
startActivity(intent);
}
}
这是刷新屏幕的功能代码:
private void displayListView()
{
timer.onTick(45000);
numPreg ++;
String aux= Integer.toString(numPreg)+"/"+opcElegida;
totalResp=4;
preguntaEnunc = (TextView)findViewById(R.id.pregunta);
preguntaEnunc.setText(todo.get(numPreg-1).getPreg());
ordenPreg=(TextView)findViewById(R.id.llevo);
ordenPreg.setText(aux);
arraydirResp.clear();
TemaRescatado temaGen = new TemaRescatado("C",todo.get(numPreg-1).getRespA(),1,false);
arraydirResp.add(temaGen);
temaGen = new TemaRescatado("C",todo.get(numPreg-1).getRespB(),2,false);
arraydirResp.add(temaGen);
temaGen = new TemaRescatado("C",todo.get(numPreg-1).getRespD(),3,false);
arraydirResp.add(temaGen);
temaGen = new TemaRescatado("C",todo.get(numPreg-1).getRespD(),4,false);
arraydirResp.add(temaGen);
dataAdapter = new MyCustomAdapterPreg(this,R.layout.item_gen, arraydirResp);
ListView listView = (ListView) findViewById(R.id.listviewPreg);
listView.setAdapter(dataAdapter);
}
谁能帮助我吗?非常感谢你
答案 0 :(得分:0)
您可能会使用Timer,但是您必须处理在UiThread中运行的内容......但您仍然可以使用CountDownTimer,例如这样使用它:
new CountDownTimer(TIME, TIME) {
public void onTick(long millisUntilFinished) {
//IGNORE IT
}
public void onFinish() {
callYourMethodHere();
}
}.start();