gpt4 book ai didi

java - 如何在监听器中使用上下文?

转载 作者:太空狗 更新时间:2023-10-29 15:38:51 25 4
gpt4 key购买 nike

我有这样的代码:

else if (v == mSettings)
{
if (disappearView.getVisibility() == View.VISIBLE)
{
AlphaAnimation fadeOutAnimation = new AlphaAnimation(1, 0); // start alpha, end alpha
fadeOutAnimation.setDuration(1000); // time for animation in milliseconds
fadeOutAnimation.setFillAfter(true); // make the transformation persist
Animation out = AnimationUtils.makeOutAnimation(this, true);
disappearView.startAnimation(out);
disappearView.setVisibility(View.INVISIBLE);
out.setAnimationListener(new Animation.AnimationListener()
{
public void onAnimationEnd(Animation animation)
{
disappearView.setVisibility(View.GONE);
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
bannerView.startAnimation(in);
bannerView.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationRepeat(Animation animation) { }

@Override
public void onAnimationStart(Animation animation) { }
});
}
else {
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
disappearView.startAnimation(in);
disappearView.setVisibility(View.VISIBLE);
bannerView.setVisibility(View.INVISIBLE);
bannerView.setVisibility(View.GONE);
}
}

除了 animationListener 中的这一部分之外,它都有效:

Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);

它想要一个有效的上下文,但它正在接收一个 animationListener,我给它什么上下文,这里的上下文真的让我很困惑。

最佳答案

将其更改为:

Animation in = AnimationUtils.loadAnimation(MyActivityName.this, android.R.anim.fade_in);

它想要扩展 Context 的任何类的实例.因为它在匿名内部类中,所以当您使用 this 时,您指的是内部类实例,而不是您的 Activity。我的代码 fragment 引用了包装匿名内部类的 Activity 类。自 Activity extends Context,这是一个有效的论点。

关于java - 如何在监听器中使用上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226521/

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