Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在另一个活动中使用来自一个活动的方法?_Java_Android - Fatal编程技术网

Java 如何在另一个活动中使用来自一个活动的方法?

Java 如何在另一个活动中使用来自一个活动的方法?,java,android,Java,Android,我想在另一个活动中使用我的方法onImageFromCameraClick,但当我尝试在其他活动中使用它时,会导致以下错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.pm.PackageManager android.content.Context.getPackageManager()” 我如何在其他活动中使用该方法 方法onImageFromCameraClick(): 其他活动: case "camera

我想在另一个活动中使用我的方法
onImageFromCameraClick
,但当我尝试在其他活动中使用它时,会导致以下错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.pm.PackageManager android.content.Context.getPackageManager()”

我如何在其他活动中使用该方法

方法onImageFromCameraClick():

其他活动

case "cameraStart":  

  Handler mHandler = new Handler(Looper.getMainLooper());  
  mHandler.postDelayed(new Runnable() {  
  @Override  
  public void run() {  
  FaceDetectionActivity fm = new FaceDetectionActivity();  
  fm.onImageFromCameraClick();  
  }  }, 0);  
 break;  }  
 break;  
  // Code end

如果我正确理解了您的问题,您可以尝试使用包含onImageFromCameraClick()的主类的
上下文来初始化对其他
活动中主类的引用,例如:

MainActivity main = (MainActivity) context;
main.onImageFromCameraClick();

通过将
的实例传递到其他活动中,您可以从主类获得
上下文

如果我正确理解了您的问题,您可以尝试使用包含
onImageFromCameraClick()的主类的
上下文
在其他
活动中初始化对主类的引用,例如:

MainActivity main = (MainActivity) context;
main.onImageFromCameraClick();

通过将
的实例传递到其他活动中,您可以从主类中获取
上下文。

I这是因为您的FaceDetectionActivity是通过新建创建的。 我给你准备了这个:

public void onImageFromCameraClick() {
...
    getApplicationContext().getPackageManager()
...
}

这是因为您的FaceDetectionActivity是由新建的创建的。 我给你准备了这个:

public void onImageFromCameraClick() {
...
    getApplicationContext().getPackageManager()
...
}
下面是不可能的

FaceDetectionActivity fm = new FaceDetectionActivity();  
fm.onImageFromCameraClick(); 
在给出解决方案之前,我建议您先阅读Android

现在的解决方案是将
onImageFromCameraClick()
移动到实用程序类,并将上下文作为
onImageFromCameraClick(上下文上下文){}
传递给它。使用此上下文而不是下面的
getApplicationContext()

是不可能的

FaceDetectionActivity fm = new FaceDetectionActivity();  
fm.onImageFromCameraClick(); 
在给出解决方案之前,我建议您先阅读Android


现在的解决方案是将
onImageFromCameraClick()
移动到实用程序类,并将上下文作为
onImageFromCameraClick(上下文上下文){}
传递给它。使用此上下文而不是
getApplicationContext()

我认为
intent.resolveActivity(getPackageManager())
不起作用。我认为
intent.resolveActivity(getPackageManager())
不起作用。我认为
intent.resolveActivity(getPackageManager())
不起作用。我认为
intent.resolveActivity不起作用(getPackageManager())
不起作用。@Namkun没问题,很高兴我能帮忙!@Namkun没问题,很高兴我能帮忙!