java - 我需要从我的视图类中的主要活动中获取上下文
问题描述
我创建了一个 View 类,我需要来自 mainActivity 的上下文来创建我的 mp3 播放器。我的 mainActivity 上什么都没有,我在 View Class 上做所有事情。我想做的例子:
if(player == null){
player = MediaPlayer.create(this, R.raw.onepieceost);
}
但是这段代码不起作用,导致“this”无法从我的主要活动中获取上下文。我想知道我该如何看待这种情况。
解决方案
像这样创建一个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);
或者
public constructor
您可以像这样在您的班级中创建一个View class
并传递context
给MainActivity
您的View
班级:
public class myview{
Context myContext;
public myview(Context context){
myContext = context;
}
//your methods
}
推荐阅读
- javascript - 对象的属性值与调用属性时返回的值不同
- python - 使用输入设置所有字符的列表。使用列表长度检查并替换具有相应值的所有字符
- python - Elasticsearch 不返回单个单词查询的结果
- build - OpenShift:构建失败,“输出参考无效”
- ruby-on-rails - 如何在 Rails 中获取模型中的必填字段列表?
- c# - 如何使 UWP TextBlock 可通过手写进行编辑?
- android - 如何在 sdk 28 上获取 Wi-FI 状态(开/关)
- google-apps-script - 当单元格是某种颜色时触发电子邮件?
- python - 使用 Python kivy 创建游戏开始菜单
- popup - 单击按钮或文本时弹出窗口 SP 2010