как использовать onActivityResult (..), если действие вызывается из меню - PullRequest
8 голосов
/ 21 июля 2011

Это моя проблема:

class main extends menuActivity{
  //
  ..
  //
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (resultCode == 0) 
        camera_barcode = INTENT.getStringExtra("SCAN_RESULT");
     }
  }
}

НАМЕРЕНИЕ создается в классе menuActivity:

public class menuActivity extends Activity {

    public INTENT;
@Override
public boolean onCreateOptionsMenu(Menu menu) {

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

       //
       INTENT = new Intent("com.google.zxing.client.android.SCAN");
       INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");
       startActivityForResult(INTENT, 0);
       //
    }
} 

Проблема в том, что String camera_barcode имеет значение null, не могу понять, почему.

В: если вместо QR_CODE_MODE я хочу сканировать 1d штрих-коды? R: cameraScan.putExtra ("SCAN_MODE", "PRODUCT_MODE");

Спасибо !!

Ответы [ 2 ]

17 голосов
/ 21 июля 2011

Завершите занятие, которое вы начинаете, для результата, подобного этому

  Bundle b = new Bundle();
  b.putString(key, value);
  Intent i = getIntent(); //gets the intent that called this intent
  i.putExtras(b);
  setResult(Activity.RESULT_OK, i);
  finish();
0 голосов
/ 21 июля 2011

Неважно, где вы создаете намерение. Если вы использовали метод Activity startActivityForResult(), вы получите результаты в функции onActivityResult().

...