gpt4 book ai didi

android - 从另一个类开始动画

转载 作者:行者123 更新时间:2023-11-29 17:30:40 24 4
gpt4 key购买 nike

我正在尝试通过从另一个类调用它来在我的 Activity 中做一个简单的淡入淡出动画。实际上我有一个 Activity 和两个简单​​的类。在我的 Activiy 中,我从第一类调用一个方法,如下所示:

public TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

txt = (TextView)findViewById(R.id.hello);

Megegy me = new Megegy(txt,MainActivity.this);
me.animatika();
}

这是这个 Megegy 类:

public class Megegy {
TextView txt;
Activity activity;

public Megegy(TextView txt,Activity activity){
this.activity = activity;
this.txt = txt;
}

Fadede fa = new Fadede(activity,txt);

public void animatika(){
fa.animati();
}
}

在这个类中,我从另一个包含动画的类中调用了一个方法:

public class Fadede implements Animation.AnimationListener {

Animation animFadein;
Animation animFadeout;
public TextView txt;
Activity activity;

public Fadede(Activity activity, TextView txt) {
this.activity = activity;
this.txt = txt;
}

public void animati(){
animFadein = AnimationUtils.loadAnimation(activity, R.anim.fadein);
animFadein.setAnimationListener(this);
animFadeout = AnimationUtils.loadAnimation(activity, R.anim.fadeout);
animFadeout.setAnimationListener(this);

txt.startAnimation(animFadein);
}

public void onAnimationEnd(Animation animation) {
// Take any action after completing the animation

// check for fade in animation
if (animation == animFadein) {
}
}

public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub

}

public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}
}

问题是当我运行这个应用程序时,我得到了一个此行的 java.lang.NullPointerException:

          animFadein = AnimationUtils.loadAnimation(activity, R.anim.fadein);

我不知道是什么导致了这个错误,但是如果有人知道请回复!!

最佳答案

不要传递一个 Activity 对象,尝试只传递一个 Context。在您的 Activity 中,使用 Megegy me = new Megegy(txt, this);

此外,

public class Megegy {
TextView txt;
Activity activity;
Fadede fa;

public Megegy(TextView txt, Context context){
this.activity = activity;
this.txt = txt;
this.fa = new Fadede(context, txt);
}
}

现在正在构造 Fadede 对象,而 activitytxt 仍然是 null,因此您应该从 Megegy 的构造函数中创建对象。

关于android - 从另一个类开始动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com