android - 找不到源?

  显示原文与译文双语对照的内容
0 0

我一直在处理这个愚蠢的事情。 有些人已经经帮助我了解它,但是现在我必须向前移动。"。 但是首先我的代码是:

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");
 } 
 }
 }
}

所以,我想要发生的是成功扫描,结果加载到了is中。 然后单击'mytotalbutton'并将结果传递到下一个 Activity'result.class'。 现在我只是想把 switch 交给新的Activity 。 如果
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 。 否则剩下的就可以了。 任何建议/帮助都有帮助。 我觉得我丢失了一些笨重的东西,我会为自己。

时间:原作者:6个回答

0 0

我想我只是意识到问题是什么。

按钮按 Activity 调用回调到它调用的同一 onActivityResult 方法,并使用 0的同一 requestCode 。 这会导致你尝试 getStringExtra("SCAN_RESULT")的错误,因为只存在于扫描中的回调中。

而不是 startActivityForResult(pass, 0); 使用 startActivityForResult(pass, 1); ( 或者其他数字),并通过添加

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

现有requestCode语句( 或者让它成为 switch() 语句)的代码部分。

最终结果将类似于下面这样:

@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
 }
 }
}
原作者:
...