【问题标题】:Can not find MediaPlayer.create(Context context, int resid) method from WordAdapter class [duplicate]无法从 WordAdapter 类中找到 MediaPlayer.create(Context context, int resid) 方法 [重复]
【发布时间】:2018-06-19 03:32:52
【问题描述】:

在以下代码中尝试使用 WordAdapter.this 作为上下文不会被编译器接受:

playButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                MediaPlayer mp = MediaPlayer.create(WordAdapter.this, currentWord.getAudioResourceId());
                mp.start();
            }
        });

该类是 WordAdapter,它使用 Word 对象的集合扩展了 ArrayAdapter。

【问题讨论】:

    标签: android android-mediaplayer android-context


    【解决方案1】:

    MediaPlayer.create() 需要 Context 作为第一个参数。您可以将上下文传递给它。 您的适配器类不是 Context 类的子类,因此您不能将 WordAdapter.this 作为上下文传递。

    【讨论】:

    • 由于只使用this 也不起作用,我尝试使用getContext(),现在它可以工作了。谢谢!
    • 老兄这怎么能行。它返回您当前的类参考。我只是告诉你如何做到这一点。这是您正在编写代码的班级。你会知道你的上下文在哪里。
    • 您可以在活动课程中使用它。或扩展 Context 类的类。
    • 可能是您在对话或片段中工作。其中 getContext() 返回其活动上下文
    • 希望对您有所帮助。您可以将此答案标记为正确以感谢我。
    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多