2013-12-14 3 views
0

Так что прошло какое-то время с тех пор, как я попытался запрограммировать Android. Теперь у меня есть лучшее понимание java, чем у меня в прошлом, но мой вопрос заключается в том, как я могу ограничить количество нажатий на кнопку. Контекст этого заключается в том, что у меня есть таймер, таймер меняется каждый раз, когда старый истек. Таким образом, я создал массив времен, например {3,4,7,1,3}, но как только он заканчивается, я не хочу, чтобы тост всплывал. Я знаю, как сделать часть тоста, и поэтому прямо сейчас у меня есть CountDownTimer (Array [i], 0). и в методе onFinish, который предоставляется, я индексирую i еще раз. Но я не хочу вызывать этот метод, если i> Array []. Lenghth. Когда я пытаюсь добавить только простой условный оператор, подобный этому, прежде чем я создам новый CountDownTimer, я получаю сообщение об ошибке, которое подразумевает надлежащее закрытие моих методов и условных обозначений. Ниже приводится то, что у меня есть. Спасибо, ребята, заранее!установить разное время android таймер обратного отсчета

package com.example.countdown; 

import java.util.ArrayList; 

import android.R; 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.CountDownTimer; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends Activity { 
private int[] Times= new int[]; 
Times={4,5,3,2,6} 
private int index=0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_item); 
    Button b1 = (Button) findViewById(R.id.button1); 
    b1.setOnClickListener(new OnClickListener(){ 
     if(index<Times.size()){ 
     public void onClick(View v){ 
      CountDownTimer timer = new CountDownTimer(
        Times[i]), 0) { 
        TextView textview =(TextView) findViewById(com.example.countdowntest.R.id.textView); 
        public void onTick(long millisUntilFinished) {textview.setText("seconds remaining: " 
           + millisUntilFinished/1000); 
        } 

        public void onFinish() { 
         textview.setText("done!"); 
        index++; 
        } 

       }.start(); 
     } 
    }); 
    } 
    } 
} 

ответ

0

Move if(index<Times.size()){ внутри метода onClick

+0

Это работает! Спасибо, но по какой-то причине я не могу открыть приложение на своем AVD. Будет ли это иметь какое-то отношение к коду, logcat говорит, что в потоке активности произошла ошибка runTime; и не было никакой ошибки при установке. Если у вас есть ключ, который бы помог, если бы вы уже немного помогли мне! Спасибо – user1241388

+0

Вы должны задать другой вопрос для этого или изменить этот. Вы можете принять этот ответ, если это поможет. – Apoorv

Смежные вопросы