2015-01-08 4 views
-1

Я работаю над приложением для своей школы, но я не могу пойти на экран display.class с намерением ... Я не знаю, почему это не работает. Ничего не происходит, когда я нажимаю кнопку, чтобы перейти в другой класс.Android, Intent не работает

Вот как я создаю намерение пойти проявляете активность:

Intent i = new Intent(CameraTestActivity.this, display.class); 
startActivity(i); 

И мой AndroidManifest

<activity 
    android:name=".display" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Мой дисплей активность:

package net.sourceforge.zbar.android.CameraTest; 
import android.app.Activity; 
import android.os.Bundle; 

public class display extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState); 
     this.setContentView(R.layout.display); 
    } 
} 

Спасибо

Edit:

Намерение, кажется, работает, но ничего не происходило на экране моего телефона

[2015-01-08 10:15:14 - Consomattionchecker] ActivityManager: Начало: Намерение {действовать = android.intent. action.MAIN кот = [android.intent.category.LAUNCHER] = CMP net.sourceforge.zbar.android.CameraTest/.CameraTestActivity}

Edit2: код CameraTestActivity

public class CameraTestActivity extends Activity 
{ 
    private Camera mCamera; 
    private CameraPreview mPreview; 
    private Handler autoFocusHandler; 

    TextView scanText; 
    Button scanButton; 

    ImageScanner scanner; 

    private boolean barcodeScanned = false; 
    private boolean previewing = true; 

    static { 
     System.loadLibrary("iconv"); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

     autoFocusHandler = new Handler(); 
     mCamera = getCameraInstance(); 

     /* Instance barcode scanner */ 
     scanner = new ImageScanner(); 
     scanner.setConfig(0, Config.X_DENSITY, 3); 
     scanner.setConfig(0, Config.Y_DENSITY, 3); 

     mPreview = new CameraPreview(this, mCamera, previewCb, autoFocusCB); 
     FrameLayout preview = (FrameLayout)findViewById(R.id.cameraPreview); 
     preview.addView(mPreview); 

     scanText = (TextView)findViewById(R.id.scanText); 

     scanButton = (Button)findViewById(R.id.ScanButton); 

     scanButton.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if (barcodeScanned) { 
         barcodeScanned = false; 
         scanText.setText("Scanning..."); 
         mCamera.setPreviewCallback(previewCb); 
         mCamera.startPreview(); 
         previewing = true; 
         mCamera.autoFocus(autoFocusCB); 

         //------------- try 
         Intent i = new Intent(CameraTestActivity.this, display.class); 
         startActivity(i); 
         //------------- 


        } 
       } 
      }); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     releaseCamera(); 
    } 

    /** A safe way to get an instance of the Camera object. */ 
    public static Camera getCameraInstance(){ 
     Camera c = null; 
     try { 
      c = Camera.open(); 
     } catch (Exception e){ 
     } 
     return c; 
    } 

    private void releaseCamera() { 
     if (mCamera != null) { 
      previewing = false; 
      mCamera.setPreviewCallback(null); 
      mCamera.release(); 
      mCamera = null; 
     } 
    } 

    private Runnable doAutoFocus = new Runnable() { 
      @Override 
      public void run() { 
       if (previewing) 
        mCamera.autoFocus(autoFocusCB); 
      } 
     }; 

    PreviewCallback previewCb = new PreviewCallback() { 
      @Override 
      public void onPreviewFrame(byte[] data, Camera camera) { 
       Camera.Parameters parameters = camera.getParameters(); 
       Size size = parameters.getPreviewSize(); 

       Image barcode = new Image(size.width, size.height, "Y800"); 
       barcode.setData(data); 

       int result = scanner.scanImage(barcode); 

       if (result != 0) { 
        previewing = false; 
        mCamera.setPreviewCallback(null); 
        mCamera.stopPreview(); 

        SymbolSet syms = scanner.getResults(); 
        for (Symbol sym : syms) { 
         scanText.setText("Valeur retournée " + sym.getData()); 
         //---------- 
         Context context = getApplicationContext(); 
         CharSequence text = sym.getData(); 
         int duration = Toast.LENGTH_SHORT; 

         Toast toast = Toast.makeText(context, text, duration); 
         toast.show(); 



         //---------- 
         barcodeScanned = true; 
        } 
       } 
      } 
     }; 

    // Mimic continuous auto-focusing 
    AutoFocusCallback autoFocusCB = new AutoFocusCallback() { 
      @Override 
      public void onAutoFocus(boolean success, Camera camera) { 
       autoFocusHandler.postDelayed(doAutoFocus, 1000); 
      } 
     }; 
} 
+3

Опубликуйте свой код 'display' class –

+1

@Rhood, пожалуйста, отредактируйте свой вопрос и отправьте код на свой номер estion – Ozan

+0

Опубликуйте свой класс 'CameraTestActivity'. – max59

ответ

0

В вашем AndroidManifest.xml я могу толькосм android:name=".display"

Вы также должны добавить другую деятельность в нем

<activity 

android:name=".CameraTestActivity"> 
</activity> 

И еще одна вещь, просто чтобы вы ясно,

Intent i = new Intent(MyCurrenctActivity.this, ActivityIwantToMoveTo.class); // replace the names of your activities accordingly. 

EDIT

Вы установили private boolean barcodeScanned = false

 scanButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (barcodeScanned) { // this if block never gets executed since barcodeScanned is false 
        barcodeScanned = false; 
        scanText.setText("Scanning..."); 
        mCamera.setPreviewCallback(previewCb); 
        mCamera.startPreview(); 
        previewing = true; 
        mCamera.autoFocus(autoFocusCB); 

        //------------- try 
        Intent i = new Intent(CameraTestActivity.this, display.class); 
        startActivity(i); 
        //------------- 


       } 
      } 
     }); 

изменение barcodeScanned к true

private boolean barcodeScanned = true; 

Это была ваша основная ошибка

+0

У меня есть другая деятельность. – Rhood

+0

Вы добавили это 'другое действие' в' AndroidManifest.xml' ?? –

+0

да, здесь '<активность android: name =".CameraTestActivity " android: label =" @ string/app_name "> <замысел-фильтр> <активность андроид: имя =". дисплей»> ' – Rhood

0

Согласно кода вашей деятельности Launcher должен б CameraTestActivity и второй активности должны п отображения, чтобы ваш файл манифеста должен б как

<activity 
     android:name=".CameraTestActivity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".display" > 
    </activity> 
Смежные вопросы