无法识别 postDelayed 方法

postDelayed Method not recognized

我开始尝试学习 MoodScanner 应用程序。我收到与 Handler 对象相关的错误。我已经导入了它,但它仍然无法识别 postDelayed 方法,它说的是

cannot resolve symbol postDelayed

Unexepected token..

这里是代码

package com.example.manju.moodscanner;

import android.graphics.drawable.AnimationDrawable;

import android.support.v7.app.ActionBarActivity;

import android.os.*;

import android.os.Bundle;

import android.os.Handler;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

private TextView result;
private ImageView thumbPrint;
private Runnable mRunnable;
private AnimationDrawable thumbAnimation;
private String[] moodResults;

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

    moodResults= new String[] {
            "Someone is cranky!",
            "You are my sunshine!",
            "No Comments...",
            "You're stressed out!",
            "Happy camper",
            "Not your day!",
            "Smile- its good for you.",
            "In the clouds...",
            "Pensive",
            "Sad!",
            "Excited!"
    };

    thumbPrint= (ImageView) findViewById(R.id.thumbPrint);
    thumbPrint.setBackgroundResource(R.drawable.thumb_animation);
    thumbAnimation=(AnimationDrawable) thumbPrint.getBackground();

    result= (TextView) findViewById(R.id.resultText);

    thumbPrint.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            showResult();
            //Toast.makeText(getApplicationContext(),"Helloo hru!",Toast.LENGTH_LONG).show();
            return true;
        }
    });
}

public void showResult(){
    mRunnable=new Runnable() {
        @Override
        public void run() {
            int rand= (int) (Math.random()* moodResults.length);
            result.setText(moodResults[rand]);
        }
    };
}
Handler mHandler= new Handler();
mHandler.postDelayed(mRunnable, 5000)
}

处理程序需要在 showResult() 方法内,或者您需要在调用 showResult() 之后调用它,因为 mRunnable 并不像您拥有的那样存在。

尝试使用一个处理程序,每个视图都使用 onLongClick

中的 v 参数
//....
thumbPrint.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        v.postDelayed(new Runnable() {
            @Override
            public void run() {
                int rand= (int) (Math.random()* moodResults.length);
                result.setText(moodResults[rand]);
            }
        }, 5000);
        // also use the context from v, not application
        //Toast.makeText(v.getContext(),"Helloo hru!",Toast.LENGTH_LONG).show();
        return true;
    }
});