簡體   English   中英

錯誤的第一個參數類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM