2017-12-13 9 views
-2

バーコードをスキャンして数秒間画面に表示するプロジェクトを作成しています。私はバーコードをスキャンするとバーコード値を画面に表示し、この値は数秒後に表示されます。私はテキストビューで値を表示しようとしているが、私は傾ける。私はこれをテキストビューで表示したい。どんな体でも私のことを教えてください。 私はアンドロイドスタジオここバーコードの値をテキストビューで表示する方法

に新しいですが、あなたがスキャンしたバーコードをトーストonActivityResult

package example.zxing; 

import android.app.Activity; 
import android.app.Fragment; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

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


public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

// TextView textView = (TextView)findViewById(R.id.scannedbarcode); 
// 
// public void setTextView(TextView textView) { 
//  this.textView = textView; 
// } 

public void scanBarcode(View view) { 
    new IntentIntegrator((Activity)this).initiateScan(); 
} 

public void scanBarcodeCustomOptions(View view) { 
    IntentIntegrator integrator = new IntentIntegrator(this); 
    integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES); 
    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, "Cancelled", Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(this, "Scanned: " + result.getContents(), 
Toast.LENGTH_LONG).show(); 
     } 
    } else { 
     // This is important, otherwise the result will not be passed to the 
fragment 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

/** 
* Sample of scanning from a Fragment 
*/ 
public static class ScanFragment extends Fragment { 
    private String toast; 

    public ScanFragment() { 
    } 

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

     displayToast(); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_scan, container, 
false); 
     Button scan = (Button) view.findViewById(R.id.scan_from_fragment); 
//   TextView textView = (TextView) 
findViewById(R.id.scannedbarcode); 
//   textView.setText("text you want to display"); 
     scan.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       scanFromFragment(); 
      } 
     }); 
     return view; 
    } 

    public void scanFromFragment() { 
     IntentIntegrator.forFragment(this).initiateScan(); 
    } 

    private void displayToast() { 
     if(getActivity() != null && toast != null) { 
      Toast.makeText(getActivity(), toast, Toast.LENGTH_LONG).show(); 
      toast = null; 
     } 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent 
data) { 
     IntentResult result = 
IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
     if(result != null) { 
      if(result.getContents() == null) { 
       toast = "Cancelled from fragment"; 
      } else { 
       toast = "Scanned from fragment: " + result.getContents(); 
      } 

      // At this point we may or may not have a reference to the 
activity 
      displayToast(); 
     } 
    } 
} 
} 
+0

文字列がtextViewに設定されています。 Probとは何ですか? – ADM

+0

私は設定方法を理解できません。 –

答えて

1
public class MainActivity extends Activity { 

private TextView textView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textView = (TextView)findViewById(R.id.scannedbarcode); 
} 

その後、私のコードでこの操作を行います。

textView.setText("SCANNED: "+result.getContents()); 
+0

ありがとうございました。 バーコードをスキャンすると数秒後に表示されます。テキストビューで表示されない –

0

ただ、広告テキストビューでのあなたのactivtyのxml。テキストビューを検索し、スキャンした結果をテキストビューに設定します。 onActivityResult

public class MainActivity extends AppCompatActivity { 
private TextView mTextView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new); 
    mTextView = (TextView) findViewById(R.id.yourtextViewId); 
} 
} 

コンテンツを取得し、テキストビューに割り当てます。

if(result.getContents() != null) { 
     mTextView.setText(String.valueOf(result.getContents())); 
    } 
+0

.setText私にエラーを与えます 静的コンテキストから 'setText(java.lang.CharSequence)'を参照できません –

+0

同じクラス内で同じインスタンスを使用している場合非静的メソッド。 mTextView.setText()などを試しましたか? – ADM

+0

私はこれを試しています。 mTextView.setText(String.valueOf(result.getContents())); –

関連する問題