【问题标题】:Start Activity for result not working启动 Activity 结果不工作
【发布时间】:2014-11-04 06:09:24
【问题描述】:

我正在使用 start Activity 结果来启动一个新 Activity 以从图库中选择一张图片,它会将我的主要 Activity 的图片路径返回到 ,以便将图片插入到我的主要 Activity 中,

这是我的代码

    Intent intent = new Intent(getApplicationContext(), Image.class);
    intent.putExtra(UUID, image.getUuid().toString());
    startActivityForResult(intent, PICK_IMAGE);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {

    case PICK_IMAGE:
        if (resultCode != RESULT_OK)
            return;
        String uuidStr = data.getStringExtra(UUID);
        log.v("image url",uuiStr);            
        break;
    }
}

但我遇到了以下崩溃

java.lang.RuntimeException: Unable to resume activity 
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, 
result=-1,data=Intent { (has extras) }} to activity       
{com.write.example/com.write.example.MainWriterActivity}: java.lang.NullPointerException

【问题讨论】:

  • 请在日志中找到 MainWriterActivity 中发生 NPE 的哪一行
  • 你能把完整的代码贴出来
  • 最好将结果代码和请求代码的日志放在switch语句之前。你可以找到发生了什么

标签: java android android-activity


【解决方案1】:

意图错误,试试这个:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");

【讨论】:

    【解决方案2】:

    开始活动

    private static final int PICK_IMAGE = 1;
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
    

    拿结果

     @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) 
      {
        if(requestCode == PICK_IMAGE && data != null && data.getData() != null)
         {
           Uri _uri = data.getData();
           //User had pick an image.
           Cursor cursor = getContentResolver().query(_uri, new String[] {     
           android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
           cursor.moveToFirst();
    
           //Link to the image
           final String imageFilePath = cursor.getString(0);
    
           cursor.close();
         }
        super.onActivityResult(requestCode, resultCode, data);
    

    }

    【讨论】:

      猜你喜欢
      • 2012-11-18
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多