Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让代码在android中等待动画结束?_Android_Android Widget - Fatal编程技术网

如何让代码在android中等待动画结束?

如何让代码在android中等待动画结束?,android,android-widget,Android,Android Widget,我有一个带有android:maxLength=“17”的EditText,并使用onClickListener按钮更新此EditText的文本。这里的过程是,当文本长度达到16时,EditText动画向左移动,使用TranslateImation(0,-15,0,0)的距离约为一个字符;然后删除EditText的第一个字符。首先,我调用方法来执行动画,然后调用方法来删除第一个字符,如下所示 制作动画(); removeChar() 这里的问题是,在动画结束之前,角色被移除,这意味着当动画运行

我有一个带有android:maxLength=“17”的EditText,并使用onClickListener按钮更新此EditText的文本。这里的过程是,当文本长度达到16时,EditText动画向左移动,使用TranslateImation(0,-15,0,0)的距离约为一个字符;然后删除EditText的第一个字符。首先,我调用方法来执行动画,然后调用方法来删除第一个字符,如下所示

制作动画();
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();
    }

});