从另一个活动获取数据时获取Null值

时间:2012-09-22 07:50:27

标签: android android-intent

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

这是我的代码

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 ..任何人都可以解决这个问题....

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

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

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

请参阅以下链接以获取更多信息。

pass bitmap between activities in android

答案 2 :(得分: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();    
        }