无法解决postdelayed方法

3
好的,这是我的代码:

final TextToSpeech ttv = new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {


        public void onInit(int status) {
            ttv.setLanguage(Locale.US);
            Log.e("Init", "Success");
            ttvInit = true;
            // wait a little for the initialization to complete
            Handler h = new Handler();
            h.postDelayed(new Runnable()
            {
            public void run() {
                ttv.speak(textSpeech.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
            }
        }, 400);}

    else {
        System.out.println("Something went wrong.");
    }
        }

但我遇到了一个错误,提示“无法解析方法'postDelayed(java.lung.Runnable,int)'”

编辑: 现在它告诉我它是未使用的: http://www.igreklik.com/slike/viewer.php?file=75221279105193055086.png&file_imgur=HPjDlfa.png

2个回答

14

请检查您的导入是否存在以下问题:

import android.os.Handler;

并将您的代码更改为以下内容(您的“else”语句不正确):

final TextToSpeech ttv = new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {

    public void onInit(int status) {
        ttv.setLanguage(Locale.US);
        Log.e("Init", "Success");
        ttvInit = true;
        // wait a little for the initialization to complete
        Handler h = new Handler();
        h.postDelayed(new Runnable()
            {
            public void run() {
                ttv.speak(textSpeech.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
            }
        }, 400);
    }
 });

一个 '}' 缺失了,我加上了它,然后出现了 ')' 和 ';' 缺失的错误,我也加上了它们,但现在出现了这个错误:"Error:(35, 9) error: <anonymous cannon.gaming.physicsdroid.MainActivity$1> is not abstract and does not override abstract method onInit(int) in OnInitListener"。我编辑了我的帖子,所以你可以看到我的代码现在是什么样子的。 - Cannon
现在我删除了一个 ttv = new line,因为我有两个,但是现在它说整个东西都没有使用。 - Cannon

0

我刚刚意识到 java.util.logging 也有一个名为 "Handler" 的类。你可能和我一样导入了错误的类。删除它,然后改为 import android.os.Handler


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接