首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postDelayed方法未被识别

postDelayed方法未被识别
EN

Stack Overflow用户
提问于 2015-05-18 20:39:43
回答 2查看 2.4K关注 0票数 1

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

代码语言:javascript
复制
cannot resolve symbol postDelayed

Unexepected token..

这里是代码

代码语言:javascript
复制
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)
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-18 20:48:30

处理程序需要在showResult()方法中,或者在调用showResult()之后调用它,因为mRunnable并不存在。

票数 0
EN

Stack Overflow用户

发布于 2015-05-18 20:56:54

尝试使用在v中使用onLongClick中的每个视图的处理程序

代码语言:javascript
复制
//....
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;
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30312431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档