有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我需要从视图类中的主要活动中获取上下文

我已经创建了一个View类,我需要mainActivity中的上下文来创建mp3播放器。我在我的主要活动上没有任何东西,我在我的观点课上做所有的事情。我想做的示例:

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

但是这个代码不起作用,因为“this”不能从我的主要活动中获取上下文。我想知道我如何理解这种情况


共 (2) 个答案

  1. # 1 楼答案

    我还会尝试将视图类作为MainActivity的子类:)

  2. # 2 楼答案

    创建一个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
            }
        }
    }
    

    然后从MainActivity调用这个函数,如下所示: player(this);

    或者

    您可以在View class中创建一个public constructor,并将contextMainActivity传递给View类,如下所示:

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