如何让代码在android中等待动画结束?
我有一个带有android:maxLength=“17”的EditText,并使用onClickListener按钮更新此EditText的文本。这里的过程是,当文本长度达到16时,EditText动画向左移动,使用TranslateImation(0,-15,0,0)的距离约为一个字符;然后删除EditText的第一个字符。首先,我调用方法来执行动画,然后调用方法来删除第一个字符,如下所示 制作动画();如何让代码在android中等待动画结束?,android,android-widget,Android,Android Widget,我有一个带有android:maxLength=“17”的EditText,并使用onClickListener按钮更新此EditText的文本。这里的过程是,当文本长度达到16时,EditText动画向左移动,使用TranslateImation(0,-15,0,0)的距离约为一个字符;然后删除EditText的第一个字符。首先,我调用方法来执行动画,然后调用方法来删除第一个字符,如下所示 制作动画(); removeChar() 这里的问题是,在动画结束之前,角色被移除,这意味着当动画运行
removeChar() 这里的问题是,在动画结束之前,角色被移除,这意味着当动画运行时,removeChar()完成其功能,而我希望removeChar()在动画结束后执行其功能 当我在谷歌上搜索这个时,我找到了使用动画监听器的答案,但在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);
}
我认为应用程序停止是因为所有的处理都在进行,而循环和动画并没有结束,因此循环成为一个无限循环并导致应用程序停止
我搜索了很多,但没有找到正确的答案。请帮助我,我更喜欢一段代码片段或一个小例子,因为我是android新手。请确实需要帮助…将
动画监听器
附加到动画中,然后在onAnimationEnd()
方法中执行removeChar()
。像这样:
slide.addAnimationListener(new AnimationListener(){
public void onAnimationStart(Animation a){}
public void onAnimationRepeat(Animation a){}
public void onAnimationEnd(Animation a){
NameOfParentClass.this.removeChar();
}
});
查看此链接。。。
slide.addAnimationListener(new AnimationListener(){
public void onAnimationStart(Animation a){}
public void onAnimationRepeat(Animation a){}
public void onAnimationEnd(Animation a){
NameOfParentClass.this.removeChar();
}
});