2017-11-04 21 views
-1

になりますこのテキストはactivity_main.xmlのEditTextオブジェクトのメインテキストとなります。 activity_mainに戻ります。 アプリの動作が停止します。コピー私は(私はボタンをクリックしたとき、それは、QRコードを読み取る)<strong><em>activity_reader.xml</em></strong>上のQRコードを読みたい、と私はコピーしたい後に別のレイアウトのEDITTEXTオブジェクト(アンドロイドスタジオ)

これはどのように見えるか主な活動です:

私はQRコードを読み取るレイアウト:

ReaderActivity.java:

package com.example.newpc.qrcode; 

import android.app.Activity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.google.zxing.integration.android.IntentIntegrator; 
import com.google.zxing.integration.android.IntentResult; 

public class ReaderActivity extends AppCompatActivity { 
    private Button scan_btn; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_reader); 
     scan_btn = (Button) findViewById(R.id.scan_btn); 
     final Activity activity = this; 
     scan_btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       IntentIntegrator integrator = new IntentIntegrator(activity); 
       integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); 
       integrator.setPrompt("Scan"); 
       integrator.setCameraId(0); 
       integrator.setBeepEnabled(false); 
       integrator.setBarcodeImageEnabled(false); 
       integrator.initiateScan(); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
     if(result != null){ 
      if(result.getContents()==null){ 
       Toast.makeText(this, "You cancelled the scanning", Toast.LENGTH_LONG).show(); 

      } 
      else { 
       Toast.makeText(this, result.getContents(),Toast.LENGTH_LONG).show(); 
       EditText editText = (EditText)findViewById(R.id.mainText); 
       editText.setText(result.getContents()); 

      } 
     } 
     else { 
      super.onActivityResult(requestCode, resultCode, data); 
     } 
    } 
} 
+0

2つのもの:あなたのコードでは、activity_mainへの参照はありません。 2つ目は、logcatの正確なエラーを確認して共有してください。 –

+0

あなたのlogcatエラーを共有しています –

答えて

1

あなたは確認する必要がありますインテントリーダーアクチブのonCreate機能

Intent intent = getIntent; 
String qrStr = (String) intent.getExtras().getString("qrStr"); 
EditText editText = (EditText)findViewById(R.id.mainText); 
editText.setText(qrStr); 

でMainActivityとputExtra String値onActivityResultでこれを入れて

result.getContents()!= nullを

String qrStr = result.getContents(); 
Intent intent = new Intent(getBaseContext(), MainActivity.class); 
intent.putExtra("qrStr", qrStr); 
startActivity(intent); 

MainActivity私はあなたの質問をよく理解し、助けてくれることを願っています。

関連する問題