首页 > 解决方案 > 如何在另一个 Activity 中使用来自一个 Activity 的方法?

问题描述

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

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

如何在另一个 Activity 中使用该方法?

方法onImageFromCameraClick()

public void onImageFromCameraClick() {  
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  

 if (intent.resolveActivity(getPackageManager()) != null) {  
    File photoFile = null;  
 try {  photoFile = createImageFile();  
  } catch (IOException e) {  
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG);  
  }  

    if (photoFile != null) {  
        Uri photoUri = FileProvider.getUriForFile(this,     
        getApplicationContext().getPackageName() + ".fileprovider", photoFile);  
  intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);  
  startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);  
  } // inner if end  
  } // outer if end  
} // onImageFromCameraClick END

其他活动

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

标签: javaandroid

解决方案


下面是不可能的。

FaceDetectionActivity fm = new FaceDetectionActivity();  
fm.onImageFromCameraClick(); 

在给出解决方案之前,我建议你先阅读 Android。

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


推荐阅读