Android 如何获取上下文以从其他类启动intent方法
我想给另一个活动的人打电话。这个方法内部有一个意图,我确信问题在于意图中的上下文。我读了一些类似的答案,但我做不到。。。我得到一个nullpointerException 活动a 这是一种有目的的方法Android 如何获取上下文以从其他类启动intent方法,android,android-intent,nullpointerexception,Android,Android Intent,Nullpointerexception,我想给另一个活动的人打电话。这个方法内部有一个意图,我确信问题在于意图中的上下文。我读了一些类似的答案,但我做不到。。。我得到一个nullpointerException 活动a 这是一种有目的的方法 public void startGreetingRecorder() { Intent recordIntent = new Intent(this, NewActivity.class); . . startActivityFor
public void startGreetingRecorder() {
Intent recordIntent = new Intent(this, NewActivity.class);
.
.
startActivityForResult(recordIntent,);
}
public void startGreetingRecorder(Context context) {
Intent recordIntent = new Intent(context, NewActivity.class);
.
.
startActivityForResult(recordIntent,);
}
活动b
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_save) {
ActivityA.startGreetingRecorder();
}
return true;
}
这是我试图做但不工作
活动a
这是一种有目的的方法
public void startGreetingRecorder() {
Intent recordIntent = new Intent(this, NewActivity.class);
.
.
startActivityForResult(recordIntent,);
}
public void startGreetingRecorder(Context context) {
Intent recordIntent = new Intent(context, NewActivity.class);
.
.
startActivityForResult(recordIntent,);
}
活动b
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_save) {
ActivityA.startGreetingRecorder();
}
return true;
}
受保护的语境
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_save) {
ActivityA.startGreetingRecorder(context);
}
return true;
}
您正在静态地调用该方法,因此需要将该方法标记为静态并发送上下文 活动A:(接收者)
如果您实际上不需要处理结果,则可以使用
context.startActivity(intent)
如果您不能从其他活动调用和活动方法,则可以使用EventBus实现活动之间的通信
尝试使用这两种方法都不起作用吗?您也不能执行
ActivityA.startGreetingRecorder(上下文)代码>除非方法startGreetingRecorder
是静态的。ActivityA中的方法正在工作。问题是,如果我使用静态方法,我会得到一个错误。我在c.startActivityForResult中有这个错误:“无法解析方法'startActivityForResult'”@D.O。我添加了必需的参数,您需要设置一个常量来使用。是的,我有这个常量,但我继续使用相同的问题c.startActivityForResult:“无法解析方法‘startActivityForResult’”“我尝试这样做,但不工作……((活动)上下文)。startActivityForResult(recordIntent,MY_常量);我找到了解决方案,代码中只有一个更改,并且正在工作。公共静态无效StartGroetingRecorder(活动c).如果你能编辑…不客气。有人投票错了我的问题…我想这是一个初学者也可以做简单问题的地方。