【发布时间】:2013-01-13 17:23:36
【问题描述】:
从另一个类中的类调用 startActivityForResult() 时遇到问题(空指针异常),代码如下:
public class OCRActivity extends Activity {
public OCRActivity(String operator)
{
this.operator = operator;
}
public void startCameraActivity() {
final Intent capture_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(capture_intent, 1); // I get the Null pointer Exception here
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if(requestCode == 1){
//get the Uri for the captured image
picUri = data.getData();
//carry out the crop operation
performCrop();
}
}
这是我打电话给startCameraActivity()的地方
public class WayToFillActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.way_to_fill);
CAMERA_BTN = (Button) findViewById(R.id.camera_btn);
CAMERA_BTN.setOnClickListener(this);
Intent operator_intent = getIntent();
OPERATOR = operator_intent.getStringExtra("operator");
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.camera_btn)
{
OCRActivity ocr = new OCRActivity(OPERATOR);
ocr.startCameraActivity();
}
}
如果我做错了什么,请告诉我!!
Logcat
01-13 16:22:26.583: E/AndroidRuntime(32425): java.lang.NullPointerException
01-13 16:22:26.583: E/AndroidRuntime(32425): at android.app.Activity.startActivityForResult(Activity.java:3190)
01-13 16:22:26.583: E/AndroidRuntime(32425): at com.almannaa.EasyRecharge.OCRActivity.startCameraActivity(OCRActivity.java:176)
【问题讨论】:
-
请发布日志猫..
-
您不会通过构造函数实例化活动。另外,我不明白你为什么不从你的
WayToFillActivity启动相机捕捉意图 -
OCRActivity 类太大,有很多方法,我才知道错误在哪里
-
你不应该在 OCRActivity 中扩展 Activity,或者如果你故意这样做,那么你不应该直接实例化它的实例,它应该具有 Activity 所需的所有覆盖(onCreate 等)
-
那么你对类和扩展它们感到困惑。启动 Activity 的唯一方法是通过 Intent,无论是来自 Android(启动器或其他应用程序)还是来自您自己的代码。
OCRActivity ocr = new OCRActivity(OPERATOR)是一个错误。您应该重新考虑设计以及您的活动如何相互关联。
标签: android android-activity nullpointerexception start-activity