2014-09-02 1 views
2

В моей Android APP всякий раз, когда мне нужно позвонить много различных ActivitiesForResult из той же деятельности, я делаю это так:ZXing Намерение код запроса (с указанием моего намерения)

public void firstMethod() { 
    int requestCode = 1; 
    Intent intent = new Intent(SomeCode1.class); 
    startActivityForResult(intent,requestCode); 
} 

public void secondMethod() { 
    int requestCode = 2; 
    Intent intent = new Intent(SomeCode2.class); 
    startActivityForResult(intent,requestCode); 
} 

И знать, какие намерения он пришел с, я признаю их, как это:

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
     case 1: { 
       // some code 
     } case 2: { 
       // some code 
     } 
    } 

Я пытаюсь вызвать сканер штрих-кода ZXing дважды из одной и той же деятельности, и я не знаю, как установить код запроса с ним.

IntentIntegrator intentintegrator= new IntentIntegrator(this); 
    IntentIntegrator.initiateScan(ZxingIntent.QR_CODE_TYPES); 

Кто-нибудь знает, как это осуществить? Нужно ли мне модифицировать код IntentIntegrator?

ответ

1

Я вижу 2 решения. Можно было бы создать новую деятельность, просто чтобы вызвать IntentIntegrator и поместив requestCode в это новое действие.

Второй вариант - изменить IntentIntegrator - это то, что я сделал.

я удалил конечный атрибут,

// public static final int REQUEST_CODE = 0x0000c0de; 
public static int REQUEST_CODE = 0x0000c0de; 

добавил функцию, чтобы установить код запроса:

public void setRequestCode(int requestCode) { 
    REQUEST_CODE = requestCode; 
    } 

и звоню Barcode Scanner, как это:

int requestCode = 2; 
    IntentIntegrator intentintegrator= new IntentIntegrator (this); 
    intentintegrator.setRequestCode(requestCode); 
    intentintegrator.initiateScan(ZxingIntent.QR_CODE_TYPES); 

I не знаю, для чего нужен RequestCode 0x0000c0de, и почему он является окончательным, но приложение работает.

+1

как вы удалили форму строки readonly file? Я хотел сделать то же самое. –