2014-05-14 27 views
0

所以,我有2個java類。這些是我的MainActivity.java和WebActivity.java(如下)。我想要的:我想從MainActivity複製字符串scanningurl(我創建的包含掃描的QR碼)到WebActivity,以便它可以以某種方式用作URL。在展示兩個課程後,我已經提供了更多細節。我需要將一個字符串從一個MainActivity複製到WebActivity /在Webview中打開掃描的QR結果

package com.example.myqrscanner; 

import android.app.Activity;... 

public class MainActivity extends Activity 
{ 
    private Camera mCamera; 
    private CameraPreview mPreview; 
    private Handler autoFocusHandler; 
    private Button button; 

    TextView scanText; 
    Button scanButton; 
    String scannedurl; 

    ImageScanner scanner; 

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

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

    public void onCreate(Bundle savedInstanceState) { 
     final Context context = this; 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     button = (Button) findViewById(R.id.buttonUrl); 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
      Intent intent = new Intent(context, WebActivity.class); 
      startActivity(intent);  }}); 



     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() { 
       public void onClick(View v) { 
        if (barcodeScanned) { 
         barcodeScanned = false; 
         scanText.setText("Scanare..."); 
         mCamera.setPreviewCallback(previewCb); 
         mCamera.startPreview(); 
         previewing = true; 
         mCamera.autoFocus(autoFocusCB); 
        } 
       } 
      }); 
    } 

    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() { 
      public void run() { 
       if (previewing) 
        mCamera.autoFocus(autoFocusCB); 
      } 
     }; 

    PreviewCallback previewCb = new PreviewCallback() { 
      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("Cod QR identificat: " + sym.getData()); 
         barcodeScanned = true; 
         scannedurl = sym.getData(); 
        } 
       } 
      } 
     }; 

     public String getscannedurl() 
     { return scannedurl; } 


    // Simulate continuous auto-focusing by sending a focus request every 1000 ms 
    AutoFocusCallback autoFocusCB = new AutoFocusCallback() { 
      public void onAutoFocus(boolean success, Camera camera) { 
       autoFocusHandler.postDelayed(doAutoFocus, 1000); 
      } 
     }; 
} 

WebActivity低於:

package com.example.myqrscanner; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class WebActivity extends Activity { 

    private WebView webView; 


    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webcontent); 

     webView = (WebView) findViewById(R.id.webView); 

     webView.getSettings().setJavaScriptEnabled(true); 

     webView.loadUrl("Here I want to add the string scannedurl from MainActivty"); 

    } 

} 

所以我需要在這裏導入該字符串(webView.loadUrl(???)),它是由QR掃描儀讀取後。 我嘗試了getter和setter方法以及其他一些方法,但是我在路上迷路了。

在此先感謝。

回答

0

使用意圖在主要活動

MainActivity.java

String status="Scanned URL"; 

     button.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 
        Intent intent = new Intent(context, WebActivity.class); 
        intent.putExtra("USERNAME",status); 
        startActivity(intent);   
      } 
     }); 

WebActivity.java

Intent intent = getIntent(); 
String receivedName = (String) intent.getSerializableExtra("USERNAME"); 
webView.loadUrl(receivedName); 
+0

這並獲得成功。我還必須對MainActivity做出另一個小改動,但效果很好。非常感謝。 – Mike

相關問題