У меня есть EditText с android: maxLength = "17" и я использовал кнопки с onClickListener для обновления текста этого EditText, процесс здесь следующий: когда длина текста достигает 16, EditText анимирует влево с расстоянием примерно в один символ, используя TranslateAnimation (0, -15, 0, 0); а затем первый символ EditText удаляется. для этого сначала я вызываю метод для выполнения анимации, а затем вызываю метод для удаления первого символа, как показано ниже
animate ();
removeChar ();
Проблема здесь в том, что перед окончанием анимации персонаж был удален. Это означает, что во время выполнения анимации removeChar () выполняет свои функции, в то время как я хочу, чтобы removeChar () выполняла свои функции после завершения анимации.
когда я искал это в Google, я нашел ответ на использование прослушивателя анимации, но при написании кода в Eclips я не нашел никакого прослушивателя анимации для объекта
методы не имеют ошибок и выполняют свои функции точно так, как я хочу. код для методов показан ниже
public void animate()
{
//slide is declared at class level
slide = new TranslateAnimation(0, -15, 0,0 );
slide.setDuration(1250);
slide.setFillAfter(true);
myEditText.startAnimation(slide);
}
public void removeChar()
{
String update="";
for(int i=1 ; i < myEditText.getText().toString().length() ; i++)
{
update=update+input.getText().toString().charAt(i);
}
myEditText.setText(update);
}
. Я также пытался использовать приведенный ниже код, чтобы дождаться окончания анимации, но он останавливает приложение.
animate();
//slide is declared at class level
while(!(slide.hasEnded()))
{
// Just waste the time
}
removeChar();
я думаю, что приложение останавливается, потому что вся обработка идет, пока цикл и анимация не закончились, и, следовательно, цикл становится бесконечным и вызывает остановку приложения
Я много искал и не нашел подходящего ответа, пожалуйста, помогите мне и Я предпочитаю фрагмент кода или небольшой пример, так как я новичок в Android, пожалуйста, действительно нужна помощь ...