Java 为什么我不能从类访问公共方法?(爪哇)
我在MapViewActivity.java中有以下方法Java 为什么我不能从类访问公共方法?(爪哇),java,android,Java,Android,我在MapViewActivity.java中有以下方法 public void startMapEditActivity() { Intent intent = new Intent(MapViewActivity.this, MapEditActivity.class); intent.putExtra(EXTRA_MESSAGE_FLOOR, mSelectedMap); startActivity(intent); // start ma
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
将您的用法更改为参数为的静态方法,并传递mSelectedMap,这样您可以在整个应用程序中使用此方法,通过传递有效的(如)和由
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视图):
MapViewActivity中某些方法的用法示例:
private void gotoMapEditActivity(){
MapEditActivity.startMapEditActivity(MapViewActivity.this, aSelectedMapObject);
}
该方法不属于MapActivity
,它属于MapViewActivity
。您不能从外部调用它MapViewActivity
解决问题的最简单方法是将方法startMapActivity
复制到类MapActivity
中。这样,MapActivity
就有了自己版本的StartMapActivity
,您可以在该类中使用它。它就在MapViewActivity中,因此,您需要在MapViewActivity上调用它……您试图实现什么?@KamleshArya仍将失败,因为MapViewActivity。这尝试了您的代码,这是我收到的:类型意图中的方法putExtra(字符串,布尔值)不适用于参数(字符串,对象)mSelectedMap的类型是什么?(您从未说过)您可以将参数,对象mSelectedMap
更改为,布尔mSelectedMap)
如果它是布尔值等…好的…因此它是布尔值,请检查编辑静态公共无效起始标记属性(最终上下文上下文,布尔mSelectedMap){
private void gotoMapEditActivity(){
MapEditActivity.startMapEditActivity(MapViewActivity.this, aSelectedMapObject);
}