TextView或者EditText 设置onActivityResult 返回值 失效
本例中结果不为空,但设置文本时一直失效
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CODE_SCAN:
// 扫描二维码回传
if (resultCode == RESULT_OK) {
if (data != null) {
//获取扫描结果
Bundle bundle = data.getExtras();
String result = bundle.getString(CaptureActivity.EXTRA_STRING);
meterIdEt.setText(result);
}
} else {
//写入之前保存的值
String meterId = sp.getString("meterId", null);
if (!TextUtils.isEmpty(meterId)) {
meterIdEt.setText(meterId);
}
}
break;
case REQUEST_CODE_SCAN_NEW_METER:
// 扫描二维码回传
if (resultCode == RESULT_OK) {
if (data != null) {
//获取扫描结果
Bundle bundle = data.getExtras();
String result = bundle.getString(CaptureActivity.EXTRA_STRING);
if (inputlineEt != null && !TextUtils.isEmpty(result)) {
inputlineEt.setText(result);
} else {
Toast.makeText(this, "扫描失败", Toast.LENGTH_SHORT).show();
}
}
} else {
Toast.makeText(this, "扫描失败", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
原因:
meterIdEt 和 inputlineEt 两个输入框控件(EditText)不能在 Activity的onResume() 方法中初始化,也不能在这个方法中设置初始值。