0
Итак, сейчас у меня есть список, который настроил countdowntimer, но если я нажму 2 элемента, тогда он начнет показывать обратный отсчет из 2-х элементов, как я могу настроить его каждый раз в другой позиции на listview щелкнут, он остановит старый обратный отсчет для нового? Спасибо за помощь!Остановить countdowntimers для новых
Вот ListView OnClick для таймеров
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parentAdapter, View view, int position,long id) {
final TextView mTextField = (TextView) findViewById(R.id.timerValue);
if(position == 0) {
mCountDown = new CountDownTimer((300 * 1000), 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
}
public void onFinish() {
mTextField.setText("Session Completed!");
String path = "/sdcard/Music/ZenPing.mp3";
try {
mp.reset();
mp.setDataSource(path);
mp.prepare();
mp.start();
} catch (IOException e) {
Log.v(getString(R.string.app_name), e.getMessage());
}
}
}.start();
} else if (position == 1) {
mCountDown = new CountDownTimer((600 * 1000), 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
}
public void onFinish() {
mTextField.setText("Session Completed!");
String path = "/sdcard/Music/ZenPing.mp3";
try {
mp.reset();
mp.setDataSource(path);
mp.prepare();
mp.start();
} catch (IOException e) {
Log.v(getString(R.string.app_name), e.getMessage());
}
}
}.start();
} else if (position == 2) {
mCountDown = new CountDownTimer((900 * 1000), 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
}
public void onFinish() {
mTextField.setText("Session Completed!");
String path = "/sdcard/Music/ZenPing.mp3";
try {
mp.reset();
mp.setDataSource(path);
mp.prepare();
mp.start();
} catch (IOException e) {
Log.v(getString(R.string.app_name), e.getMessage());
}
}
}.start();
}
Вы пытаетесь вызвать mCountDown.cancel() перед началом нового ? – Dimmerg
вы имеете в виду вот так? else if (position == 1) {mCountDown.cancel(); mCountDown = new CountDownTimer ((600 * 1000), 1000) { public void onTick (long millisUntilFinished) {@Dimmerg – user3224105
Да, это не работает? – Dimmerg