[英]Is it possible to Call a android class from java class?
我有一个扩展Activity的android类。
public class MainAct extends Activity{
Context context;
SourceJava srcClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
context = this;
System.out.println("inside oncreate");
setContentView(R.layout.main);
srcClass = new SourceJava();
}
}
我有另一个Java类,如下所示,这是从MainAct类调用。
public class SourceJava {
public SourceJava(){
System.out.println("inside constructor***");
MyClass myClass = new MyClass();
if(myClass != null){
System.out.println("**not null");
myClass.powerOff();
}
}
}
在SourceJava中,我正在调用另一个类。 即
public class MyClass extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
System.out.println("**inside myclass");
powerOff();
}
public void powerOff(){
System.out.println("**inside powerOff");
Intent call = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:5555"));
startActivity(call);
}
}
}
我在行startActivity(call)
, myClass.powerOff();
上得到NullPointerException myClass.powerOff();
和srcClass = new SourceJava();
这段代码有什么问题?
您将MyClass
(这是一个Activity类)视为常规Java类。 MyClass
活动既没有注册也没有加载,所以调用startActivity
在这里毫无意义。 为此,您需要通过构造函数将Context
引用传递给SourceClass
和MyClass
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.