Java 当我呼叫一个模块时,我的应用程序崩溃,该模块是';s功能是切换到模块内的活动
我正在创建一个模块,用于将活动从用户项目中的当前活动切换到模块中的特定活动 模块内部是一个类,该类充当要使用库的项目和它应该切换到的活动之间的桥梁。模块中的桥接类如下所示:Java 当我呼叫一个模块时,我的应用程序崩溃,该模块是';s功能是切换到模块内的活动,java,android,Java,Android,我正在创建一个模块,用于将活动从用户项目中的当前活动切换到模块中的特定活动 模块内部是一个类,该类充当要使用库的项目和它应该切换到的活动之间的桥梁。模块中的桥接类如下所示: public class Starter extends AppCompatActivity { Context context; public Starter(Context context){ this.context = context; } public voi
public class Starter extends AppCompatActivity {
Context context;
public Starter(Context context){
this.context = context;
}
public void OpenOkraWidget(){
Intent intent = new Intent(this.context, OkraWebActivity.class);
startActivity(intent);
}
}
public class ProjectActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_project);
button = findViewById(R.id.okra_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openOkraWidget();
}
});
}
public void openOkraWidget(){
Starter starter = new Starter(ProjectActivity.this);
starter.OpenOkraWidget();
}
}
在上述意图中调用的OkraWebActivity.class是一个类
模块内部及其布局
在我的主要项目类中,我将模块称为:
public class Starter extends AppCompatActivity {
Context context;
public Starter(Context context){
this.context = context;
}
public void OpenOkraWidget(){
Intent intent = new Intent(this.context, OkraWebActivity.class);
startActivity(intent);
}
}
public class ProjectActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_project);
button = findViewById(R.id.okra_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openOkraWidget();
}
});
}
public void openOkraWidget(){
Starter starter = new Starter(ProjectActivity.this);
starter.OpenOkraWidget();
}
}
我的问题是当我试图运行我得到的代码时
java.lang.NullPointerException:尝试调用虚拟方法
'android.app.ActivityThread$ApplicationThread
null对象上的android.app.ActivityThread.getApplicationThread()
参考文献
来自Intent Intent=新Intent(this.context,
OkraWebActivity.class);
星触觉(意向);在模块内部的Starter.class中
为什么会出现此错误,为什么我的代码不能按预期正常工作?启动程序不应该是活动。它从上下文继承的startActivity方法要求该类由Android管理并由Android启动。您应该使用提供给Starter的上下文对象调用start activity 试试这个:
公共类初学者{
语境;
公共启动程序(上下文){
this.context=上下文;
}
public void OpenOkraWidget(){
Intent Intent=新的Intent(this.context,OkraWebActivity.class);
这个。上下文。起始触觉(意图);
}
}
您从未在android中创建活动的对象<代码>新启动器()
这就是罪魁祸首。。请多读一点关于Activity
component的内容。@ADM那么,我该如何弥合能够让我现在切换活动的差距呢?只需从Starter
中复制OpenOkraWidget
方法的代码即可。。