可以从java类调用安卓类吗?
我有一个安卓类,它扩展了活动
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中,我调用了另一个类。i、 e
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);
}
}
}
我在第^{myClass.powerOff();
和
srcClass = new SourceJava();
这个代码有什么问题
# 1 楼答案
您将
MyClass
(这是一个活动类)视为常规Java类。MyClass
活动既没有注册也没有加载,因此对startActivity
的调用在这里毫无意义。为此,需要通过构造函数将Context
的引用传递给SourceClass
和MyClass