2015-01-15 3 views
-3

Я добавил ZXing 3.0.1 в качестве библиотеки для моего проекта у меня есть 2 макетов: на первом у меня есть кнопка, которая называют CaptureActivity библиотеки ZXing, а когда CaptureActivit у декодирования штрих-кода Мне нужно поставить этот код на второй макет в textView. Как я могу это сделать? Если кто-то знает, напишите пошаговое руководство, потому что новичок в Android и Android, и не знаете, что кодировать.ZXing результат сканирования на новую операцию

Я должен положить что-то эту часть кода CaptureActivity?

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
if (resultCode == RESULT_OK) { 
    if (requestCode == HISTORY_REQUEST_CODE) { 

    int itemNumber = intent.getIntExtra(Intents.History.ITEM_NUMBER, -1); 
    if (itemNumber >= 0) { 
     HistoryItem historyItem = historyManager.buildHistoryItem(itemNumber); 
     decodeOrStoreSavedBitmap(null, historyItem.getResult()); 
    } 
    } 
} 
} 
+1

Ваш вопрос неясно. что вы подразумеваете под 2 макетами? Вы имели в виду 2 действия, один с кнопкой и один с текстом? – Sharj

+0

Ответ зависит от того, хотите ли вы вернуться к предыдущему действию с результатом или если вы хотите начать новое действие с результатом. –

ответ

1

Yout должны начать CaptureActivity с startActivityForResult:

startActivityForResult(new Intent(this, CaptureActivity.class), CaptureActivity.REQUEST_CODE); 

Когда ZXing сделано с декодированием (в моем случае это вернуть его результат в handleResult (результат rawResult) callback- вы должны позвонить setResult (RESULT_OK, data) внутри CaptureActivity, где данные - ваша декодированная в комплекте строка и вызов finish():

@Override 
public void handleResult(Result rawResult) { 
    Bundle data = new Bundle(); 
    args.putString(RESULT_KEY, rawResult.getText()); 
    setResult(RESULT_OK, data); 
    finish(); 
} 

В деятельности, которая началась CaptureActivity вы должны переопределить onActivityResult (INT requestCode, внутр ResultCode, Intent данные) обратного вызова и обрабатывать получение результата - в вашем случае - обновить TextView:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == CaptureActivity.REQUEST_CODE && resultCode == RESULT_OK) { 
     youtTextView.post(new Runnable() { 
      @Override 
      public void run() { 
       yourTextView.setText(intent.getStringExtra(RESULT_KEY)); 
      } 
     }; 
    } 
} 
+0

В моей основной деятельности я добавляю кнопку с методом onClick (где я запускаю CaptureActivity с помощью startActivityForResult). Я до сих пор не понимаю, какой код я должен поместить в CaptureActiviti, и то, что мне нужно написать в моей MainActivity в методе onActivityResult – Kirill

+0

@Kirill, обновит мой ответ с кодом из моего приложения в ближайшее время. – localhost

+0

Я не понял код ** CaptureActivity **, где zxing сделал с оформлением там? где я должен положить handkeResult? – Kirill

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