当前位置:编程学习 > JAVA >>

android startActivityForResult() 问题。妹的,卡了我好几天了。

扫描条形码:在A activity中  启动  代码如下:


// 扫描条形码按扭点击事件
this.imgScanCode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent();
intent.putExtra("operate", 0);
intent.setClass(UserLoginActivity.this, CaptureActivity.class);
startActivityForResult(intent, 1);
}});


在B activity中返回值代码如下:

public void handleDecode(Result rawResult, Bitmap barcode) {
// this.lastResult = rawResult;
drawResultPoints(rawResult, barcode);
ParsedResult result = parseResult(rawResult);
ParsedResultType type = result.getType();
Log.d("-----TYPE", type.toString());
Intent intent = new Intent();
if (this.operate == 0) {
intent.setClass(this, UserLoginActivity.class);
} else if (this.operate == 1) {
intent.setClass(this, IndexActiveActivity.class);
}
System.out.println("seriesNumber:" + rawResult.getText());
intent.putExtra("seriesNumber", rawResult.getText());
setResult(1, intent);
CaptureActivity.this.finish();// 结束当前Activity
}


然后在Aactivity中 接收方法如下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println("requestCode:" + requestCode + ",resultCode:"
+ resultCode + ",data:" + data);
switch (resultCode) {
case 1:// 条形码扫描Activity发来的数据
String seriesNumber = "";
if (data != null) {
seriesNumber = data.getStringExtra("seriesNumber");
}
if (seriesNumber != null) {
this.eseriesNumber.setText(seriesNumber);
} else {
this.eseriesNumber.setText("");
}
break;
}
}

理论的结果是我触发点击事件时,启动另一个activity完成扫描返回结果,后A里面执行接收方法,并开始下来的动作。但,妹的,我触发点击事件时,接收数据的方法开始执行。。。
 代码我都贴上面了,往路过的大神,耐心看完,并救济哈我。感激不尽.... android   startActivityForRes 条形码扫描 --------------------编程问答-------------------- 不是吧,没人路过。。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,