首页 > 解决方案 > 我需要从我的视图类中的主要活动中获取上下文

问题描述

我创建了一个 View 类,我需要来自 mainActivity 的上下文来创建我的 mp3 播放器。我的 mainActivity 上什么都没有,我在 View Class 上做所有事情。我想做的例子:

    if(player == null){
        player = MediaPlayer.create(this, R.raw.onepieceost);
    }

但是这段代码不起作用,导致“this”无法从我的主要活动中获取上下文。我想知道我该如何看待这种情况。

标签: javaandroidandroid-studio

解决方案


像这样创建一个void function并调用MainActivity它:

public void player(Context context){

if(player == null){
        player = MediaPlayer.create(context, R.raw.onepieceost);
    }
   if(player != null || !player.isPlaying()){
        player.start();
    }else {
        player = new MediaPlayer();
        try {
            player.prepare();
            player.start();

        } catch (IOException e) {
            //null
        }
    }
}

并像这样调用这个函数MainActivityplayer(this);

或者

public constructor您可以像这样在您的班级中创建一个View class并传递contextMainActivity您的View班级:

public class myview{

Context myContext;

public myview(Context context){
myContext = context;
}
//your methods
}

推荐阅读