Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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
Java 错误的第一个参数类型_Java_Android_Animation_This_Android Context - Fatal编程技术网

Java 错误的第一个参数类型

Java 错误的第一个参数类型,java,android,animation,this,android-context,Java,Android,Animation,This,Android Context,我对Java和Android开发比较陌生,所以很抱歉打扰您。 我想使用AnimationUtils.LoadAnimation()在长时间单击时创建淡入动画,但遇到错误: 错误的第一个参数类型。找到:“android.view.view.OnLongClickListener”,必需:“android.content.Context” 这是我的代码: BasicsButton.setOnLongClickListener(new View.OnLongClickListener() {

我对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)

由于上述方法是在匿名类中调用的,
指的是
onlongclicklister
而不是活动

将其更改为如下所示:


Animation in=AnimationUtils.loadAnimation(.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);

@克鲁姆切特科夫太棒了!请记住,如果答案有用,请将其标记为已接受,以便其他人也能从中受益。当然,我会的,我只需等待几分钟,因为堆栈溢出还不允许我标记它。:)@克鲁姆切特科夫:当然。享受编码