[英]Wrong 1st argument type
我对Java和Android开发相对较新,所以我很抱歉打扰你。 我想使用AnimationUtils.LoadAnimation()长时间点击创建淡入动画,但我遇到错误:
错误的第一个参数类型。 找到:'android.view.View.OnLongClickListener',必填:'android.content.Context'
这是我的代码:
BasicsButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vib.vibrate(VibrationEffect.createOneShot(500,VibrationEffect.DEFAULT_AMPLITUDE));
}else{
vib.vibrate(500);
}
Animation in = AnimationUtils.loadAnimation(this, R.anim.fadein);
blurView.startAnimation(in);
blurView.setVisibility(View.VISIBLE);
return true;
}
我不知道什么是错的, 这个例子似乎有用,但不适合我。
先感谢您。 :)
问题是跟随线
Animation in = AnimationUtils.loadAnimation(this, R.anim.fadein);
由于上述方法是在匿名类中调用的, this
指的是OnLongClickListener
而不是Activity。
将其更改为如下:
Animation in = AnimationUtils.loadAnimation(<ActivityName>.this, R.anim.fadein);
如果在片段中使用此代码,请使用getContext()而不是此。
您是否尝试过以下代码:
Vibrator vib = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vib.vibrate(VibrationEffect.createOneShot(500,VibrationEffect.DEFAULT_AMPLITUDE));
}else{
vib.vibrate(500);
}
Animation in = AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_left);
blurView.startAnimation(in);
blurView.setVisibility(View.VISIBLE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.