0

我一直在谷歌,但迄今没有运气。 我有一个应用程序,我开始一个ActivityForResult,并在其中我把一个额外的字符串。geting extra in activityForResult

编辑 我无法发布一个复杂的代码,因为我是在我的桌子,我刚收到我的笔记本电脑所以这里的代码

的ActivityForResult:

@Override 
protected void onCreate(Bundle saved) { 
    super.onCreate(saved); 
    setContentView(R.layout.camera); 
    a = new AQuery(this); 
    output = getIntent().getExtras().getString("output");//Here, nothing is passed!!!!!!!! 
    //Log.d("out",output); 
    /** Check if this device has a camera */ 
    if (this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)){ 
     text ="yes"; 
     //now we check the cam features 
     if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) 
      front ="yes"; 
     if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) 
      flash = "yes"; 
     if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) 
      back= "yes"; 
    }else{ 
      text = "This device does not have a camera"; 
      //---set the data to pass back--- 
      data.putExtra("vid",text); 
      setResult(RESULT_OK, data); 
      //---close the activity--- 
      finish(); 
    } 
    if (c != null) { 
     c.release(); 
     c = null; 
    } 
    m = new MediaRecorder(); 
    c = getCameraInstance(this); 

    Camera.Parameters parameters = 
      c.getParameters(); 

    // Create our Preview view and set it as the content of our activity. 
    mPreview = new CameraPreview(this, c); 
    int orien =getResources().getConfiguration().orientation; 
    if(orien ==1){ 
     parameters.setRotation(0); // set rotation to save the picture 
     c.setDisplayOrientation(90); 
     parameters.setPictureSize(640, 480); 
     PIC_ORIENTATION = "landscape"; 
    }else{ 
     parameters.setRotation(0); // set rotation to save the picture 
     c.setDisplayOrientation(0); 
     parameters.setPictureSize(640, 480); 
     PIC_ORIENTATION = "portrait"; 
    } 
    if (Camera.getNumberOfCameras() < 2) { 
     //TODO 
    } 
    fileUri = getOutputMediaFileUri(); 
    c.setParameters(parameters); 
    m.setCamera(c); 
    FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview); 
    preview.addView(mPreview); 
} 

和发射意图在价值

cam.setOnClickListener(new OnClickListener(){ 

       @Override 
       public void onClick(View v) { 
        Intent i = new Intent(Mess.this,Cam.class); 
        i.putExtra("output", vids); 
        startActivityForResult(i,2); 
        dialog.cancel();//TODO 

       } 

      }); 

没有传递..它只是空... 这是activityForResult ......但在短短的活动,我得到的通过价值。

+0

从哪里试图检索数据?请发布与这两个活动相关的代码 – 2014-09-10 23:59:31

+0

您的意思是“什么都不通过”是什么意思? Extras包是否为空? 'getString()'结果为空吗? – emerssso 2014-09-11 00:03:55

+0

为了将来的参考,您应该发布更完整的示例代码。特别是,你应该给周围的类和包含代码的方法。 – 2014-09-11 00:31:49

回答

1

这样做可以把价值:

i.putExtra("string","value"); 

然后,你这样做是为了获得的价值:

String value = getIntent().getExtras().getString("value"); 

第二行应该是

String value = getIntent().getExtras().getString("string"); 
+0

感谢您的帮助,我的坏,我在我的平板电脑上,所以我匆匆输入代码,我只是从我的笔记本电脑编辑我的问题 – Jayo2k 2014-09-11 00:45:12

0

经过一番好应得的休息,我得到了我的头清理,看着代码...问题是我没有初始化输出字符串,因此当putin g额外的意图,这是一个未设置的字符串...现在得到它的工作