gpt4 book ai didi

java - 是否可以从java类调用android类?

转载 作者:行者123 更新时间:2023-12-02 08:01:30 26 4
gpt4 key购买 nike

我有一个 Android 类,它扩展了 Activity。

 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) 线上收到 NullPointerException,myClass.powerOff();srcClass = new SourceJava();这段代码有什么问题?

最佳答案

您正在将 MyClass (这是一个 Activity 类)视为常规 Java 类。 MyClass Activity 既未注册也未加载,因此调用 startActivity 在这里毫无意义。为此,您需要通过构造函数将 Context 的引用传递给 SourceClassMyClass

关于java - 是否可以从java类调用android类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com