我在MapViewActivity.java中有以下方法
public void startMapEditActivity() {
Intent intent = new Intent(MapViewActivity.this, MapEditActivity.class);
intent.putExtra(EXTRA_MESSAGE_FLOOR, mSelectedMap);
startActivity(intent); // start map edit mode
}
我正在尝试从MapActivity.java访问该方法:
startMapEditActivity();
但它不起作用,它会抛出以下消息:
The method startMapEditActivity() is undefined for the type MapActivity
答案 0 :(得分:1)
将您的用法更改为参数为context的静态方法,并传递任何mSelectedMap,这样您就可以在整个应用程序中使用这一方法通过传入有效{{3}来启动此活动(例如context)和由mSelectedMap
表示的信息:
static public void startMapEditActivity(final Context context, boolean mSelectedMap) {
Intent intent = new Intent(context, MapEditActivity.class);
intent.putExtra(EXTRA_MESSAGE_FLOOR, mSelectedMap);
startActivity(intent); // start map edit mode
}
示例用法(来自视图clicklistener):
setOnClickListener(new OnClickListener() {
public void onClick(View view) {
MapEditActivity.startMapEditActivity(view.getContext(), aSelectedMapObject);
}
}));
MapViewActivity中某些方法的示例用法:
private void gotoMapEditActivity(){
MapEditActivity.startMapEditActivity(MapViewActivity.this, aSelectedMapObject);
}
答案 1 :(得分:0)
该方法不属于MapActivity
,属于MapViewActivity
。您无法从外部MapViewActivity
拨打电话。
解决问题的最简单方法是将方法startMapEditActivity
复制到类MapActivity
中。这种方式MapActivity
拥有自己的startMapEditActivity
版本,您可以在该类中使用。