2010-07-07 5 views
1

Итак, я уже давно работаю над этой самой тупой штукой. некоторые люди здесь помогли мне получить его до точки оно, но теперь я должен двигаться дальше вперед ... но первый, мой код:Не удается найти источник?

package com.mhe.test.scan; 



import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 


public class main extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button myScanButton = (Button) findViewById(R.id.myScanButton); 

    totalbox = (EditText) findViewById(R.id.tBox);   

    myScanButton.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
     startActivityForResult(intent, 0); 






     } 
    }); 
    }  
    private EditText totalbox; 
    @Override 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
     final String contents = intent.getStringExtra("SCAN_RESULT"); 




     if (totalbox != null); 


     totalbox.setText(contents); 


     Context context = getApplicationContext(); 
     CharSequence text = "Successful Scan"; 
     int duration = Toast.LENGTH_SHORT; 
     Toast toast = Toast.makeText(context, text, duration); 
     toast.show(); 

     Button myTotalButton = (Button) findViewById(R.id.myTotalButton); 
     myTotalButton.setOnClickListener(new Button.OnClickListener() { 
      public void onClick(View view) { 
       Intent pass = new Intent(view.getContext(), Result.class); 
        startActivityForResult(pass, 0); 
       } 
      }); 



     } else if (resultCode == RESULT_CANCELED) { 

     if (totalbox != null); 
      totalbox.setText("bummer"); 
     }  

    } 




    } 
} 

так или иначе, то, что я хотел бы случиться при успешном сканировании результат загружается в итоговое поле EditText. затем нажата кнопка «myTotalButton» и передаст результат следующему действию «Result.class». прямо сейчас я просто пытаюсь заставить его переключиться на новую активность. Если
Button myTotalButton = (Button) findViewById(R.id.myTotalButton); myTotalButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View view) { Intent pass = new Intent(view.getContext(), Result.class); startActivityForResult(pass, 0);

код есть, это FCs. в остальном все остальное работает нормально. любые предложения/помощь были бы полезными. Я чувствую, что мне не хватает чего-то глупого, что я буду притворяться.

+0

Что показывает Logcat по причине, стоящей за FC? – kiswa

+0

07-07 14: 25: 44.146: INFO/ActivityManager (1083): Начальная деятельность: Intent {cmp = com.mhe.test.scan/.Result} 07-07 14: 25: 45.193: DEBUG/dalvikvm (1083)): GC_EXPLICIT освободил 789 объектов/38656 байт в 137 мс 07-07 14: 25: 45.224: ОШИБКА/привязка (1083): активен iface (usb0), добавленный, игнорируется 07-07 14: 25: 48.740: WARN/WindowManager (1083): нет окна для указания действия указателя 0 07-07 14: 25: 49.271: WARN/WindowManager (1083): нет окна для указания действия указателя 1 07-07 14: 25: 53.154: INFO/ActivityManager (1083): Начать proc thats подробный logcat – sgardeski

+0

, и это выглядит так, где ошибка ... хотя я действительно не знаю, что делать с этим 07-07 14: 24: 45.224: ERROR/AndroidRuntime (2857): Caused by: java.lang.reflect.InvocationTargetException В нем также упоминается ошибка, не найденная классом. – sgardeski

ответ

0

Я думаю, что я только понял, в чем проблема.

Операция нажатия кнопки возвращает к тому же методу onActivityResult, из которого он вызывается, и используя тот же код запроса 0. Это вызывает ошибки, при которых вы пытаетесь сделать getStringExtra("SCAN_RESULT"), потому что это существует только в обратном вызове из сканирования.

Вместо startActivityForResult(pass, 0); использование startActivityForResult(pass, 1); (или любой другой символ) и обработать его, добавив раздел кода

} else if (1 == requestCode) { 
    \* your stuff to handle the button result here*\ 
} 

к существующему requestCode, если заявление (или сделать его переключатель() заявление).

Конечный результат будет выглядеть примерно так:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      final String contents = intent.getStringExtra("SCAN_RESULT"); 
      if (totalbox != null) { 
       totalbox.setText(contents); 
      } 

      Toast toast = Toast.makeText(getApplicationContext(), 
       "Successful Scan", Toast.LENGTH_SHORT).show(); 

      Button myTotalButton = (Button) findViewById(R.id.myTotalButton); 
      myTotalButton.setOnClickListener(new Button.OnClickListener() { 
       public void onClick(View view) { 
        Intent pass = new Intent(view.getContext(), Result.class); 
        startActivityForResult(pass, 1); 
        } 
       }); 
     } else if (resultCode == RESULT_CANCELED) { 
      if (totalbox != null) { 
       totalbox.setText("bummer"); 
      } 
     } 
    } else if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 
      // Do whatever it is you want to do with the returned 
      // data from the Result.class activity call 
     } 
    } 
} 
+0

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

+0

Рад, что я мог бы помочь!Я обновил ответ, включив в него более подробный пример кода (который я также немного очистил). – kiswa

1

Добавили ли вы новую активность в свой манифест? Также вы включили код интегратора намерений из проекта zxing?

+0

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

0

Итак, я правильно полагая, что вы просто хотите передать результат на другой вид деятельности? Если это так, есть простой способ Java сделать это, не относящийся к Android. Если да, то дайте мне знать, и я помогу.

+0

yes, thats именно это, и я хочу, чтобы это произошло, когда я нажимаю myTotalButton – sgardeski

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