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

我在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

将您的用法更改为参数为的静态方法,并传递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);
  }