0

Я был googleling, но пока не повезло. У меня есть приложение, в котором я начинаю ActivityForResult, и в нем я добавляю String extra.Получение дополнительной информации в деятельностиForResult

Редактировать я не мог опубликовать сложный код, так как я был на моем столе, я только что на моем ноутбуке, так что здесь код

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

Откуда вы пытаетесь получить данные? Отправьте код, связанный с обоими действиями –

+0

Что вы подразумеваете под «ничего не передано»? Является ли пакет Extras нулевым? Является ли результат getString() «null»? – emerssso

+0

Для дальнейшего использования вы должны разместить более полный пример кода. В частности, вы должны дать окружающий класс и метод, содержащий код. –

ответ

1

Вы можете сделать это, чтобы поместить значение:

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

Тогда вы сделаете это, чтобы получить значение:

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

Вторая линия должна быть

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

спасибо за помощь, мой плохой, я был на своем планшете, поэтому я набрал код в спешке, я только что редактировал свой вопрос с моего ноутбука – Jayo2k

0

После некоторых хорошо заслуженный отдых, я очистил голову и посмотрел на код ... Проблема в том, что я не инициализировал выходную строку, поэтому, когда putin g лишний в намерении, это была неустановленная строка ... Теперь она работала

Смежные вопросы