我有一个EditText,android:maxLength="17",使用带有onClickListener的按钮来更新此EditText的文本。当文本长度达到16时,EditText会使用TranslateAnimation(0,-15,0,0)向左动画移动大约一个字符距离,然后删除EditText的第一个字符。首先我调用执行动画的方法,然后调用删除第一个字符的方法,如下所示:
animate(); removeChar();
问题在于,在动画结束之前,字符已被删除,这意味着在动画运行时,removeChar()完成了其功能,而我希望removeChar()在动画结束后执行其功能。
当我在Eclipse中编写代码时,我发现没有任何对象的animation listener,当我搜索时,我发现可以使用animation listener解决此问题。
这些方法没有错误,并且按照我想要的方式执行其功能。以下是方法的代码:
我也尝试过使用下面的代码来等待动画结束,但它会使应用程序停止。
我认为应用程序停止是因为所有处理都在while循环和动画未结束时,循环变成了无限循环,导致应用程序停止。
我搜索了很多资料,但没有找到合适的答案,请帮帮我。由于我是新手,所以我更喜欢一个代码片段或一个小例子。真的需要帮助...
animate(); removeChar();
问题在于,在动画结束之前,字符已被删除,这意味着在动画运行时,removeChar()完成了其功能,而我希望removeChar()在动画结束后执行其功能。
当我在Eclipse中编写代码时,我发现没有任何对象的animation listener,当我搜索时,我发现可以使用animation listener解决此问题。
这些方法没有错误,并且按照我想要的方式执行其功能。以下是方法的代码:
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();
我认为应用程序停止是因为所有处理都在while循环和动画未结束时,循环变成了无限循环,导致应用程序停止。
我搜索了很多资料,但没有找到合适的答案,请帮帮我。由于我是新手,所以我更喜欢一个代码片段或一个小例子。真的需要帮助...