0

嗨,我在将图像路径发送到另一个活动时遇到空指针异常

这是我的代码下面

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        System.out.println(requestCode + ",      " + resultCode);
        if (requestCode == SELECT_PICTURE) {

            if (data.getData() != null) {
                    Uri selectedImageUri = data.getData();
                    String path = getPath(selectedImageUri);
                    System.out.println("PATH  =  "+path);
                    Intent _intent = new Intent(MainActivity.this,AndroidFaceDetector.class);
                    _intent.putExtra("mypath", path);
                    startActivityForResult(_intent, CROPPED_FACE_IMAGE);
            }
            else
            {
                Toast.makeText(MainActivity.this, "Please try again", Toast.LENGTH_SHORT).show();
            }
        }
        else {
            setImage(data);
        }

    }
}

现在在 AndroidFaceDetector 类

     @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new myView(this));
    Intent _intent = getIntent();
    path = _intent.getStringExtra("mypath");
    System.out.println("Path is gettting "+path); //here i am getting null value
}

因为

在这里,我得到的路径值为 null.. 任何机构都可以解决这个问题....

4

3 回答 3

0

在您的第二个活动中尝试使用此代码而不是您的代码,

path = _intent.getString("mypath");

(或者)

Bundle bundle = this.getIntent().getExtras();
String pic = bundle.getString("mypath");

如果您希望传递图像而不是 URI 意味着尝试此代码

在您的第一个活动中,

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

        Intent intent = new Intent();
        intent.setClass(AndroidPassingBitmap.this, AndroidReceiveBitmap.class);
        intent.putExtra("Bitmap", bitmap);
        startActivity(intent);

在你的第二个活动中,

Bitmap bitmap = (Bitmap)this.getIntent().getParcelableExtra("Bitmap");
  ImageView viewBitmap = (ImageView)findViewById(R.id.bitmapview);

  viewBitmap.setImageBitmap(bitmap);
于 2012-09-22T08:01:34.503 回答
0

在下面编写代码以从意图中获取数据,它将解决您的问题。

Bundle bdl=getIntent().getExtras();
String path=bdl.getString("mypath");

有关更多信息,请参见下面的链接。

在android中的活动之间传递位图

于 2012-09-22T08:04:18.953 回答
0

在第二个活动中尝试这样

        Intent myintent = getIntent();
        if(null != myintent.getExtras())
        {
              // do your work here 
        String path = myintent.getExtras().getString("mypath");          
        }
        else
        {
              // not here you can't get values
               Toast.makeText(getApplicationContext(),"No Recor Here..",12).show();    
        }
于 2012-09-22T08:43:05.693 回答