[英]Android Access Activity Methods From Non-Activity Class
这是我想从Activity类(ActivityName)访问的方法:
public MediaPlayer getBlipComp() {
return blipComp;
}
编辑
在活动课中
public SingleGameActivity getSingleGameActivity() {
return this;
}
这在我的SurfaceView类中工作正常:
SingleGameActivity myActivity = ((SingleGameActivity)getContext()).getSingleGameActivity();
// Later in the code
myActivity.getBlipStart().start();
但是,当我将引用变量传递给ball(普通)类时,它不起作用:
ball = new Ball(myActivity, box.getCenterX(), box.getCenterY(), currentLvl,
Color.GREEN);
球类
public Ball(SingleGameActivity activity, int xPos, int yPos, int level,
int color) {
myActivity = activity;
不能从Ball Class调用此方法,为什么? 解?
myActivity.getBlipPlay().start();
像这样将ActivityName实例传递到NormalClass的构造函数中:
public class NormalClass {
private ActivityName activity;
public NormalClass(ActivityName activity){
this.activity = activity;
}
public void doSomething()
{
activity.getBlipComp();
}
}
这行:ActivityName名称= new ActivityName(); 实际上创建了一个新的活动节目。 那不是你想要的。
您必须选择执行以下操作:1.将Activity节目传递给“普通班”,并将其保留为字段:
public class NormalClass {
private Activity myActivity;
并根据需要使用它。
2.只在活动课上做同样的事情。
public class MyActivity extends Activity{
public static Activity myActivity;
并为构造函数分配“ MyActivity.myActivity = this;”
而不是像这样使用静态方法来使用您的活动:
public static MediaPlayer getBlipComp(){
return myActivity.getBlipComp();
}
而不是像这样使用这种方法:
MyActivity.getBlipComp();
玩得开心!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.