java - Android Studio:如何将变量从一个 java 文件保存到另一个
问题描述
我正在开发一个将扫描数据(条形码)转换为 GoogleSheet 数据的应用程序,并且我正在尝试将条形码编号(来自 Page2.java)传输到另一个 java 文件(ListItem.java)
我看到通常的方法是创建意图。所以我做到了。但是我在 ListItem.java 中放入的 toast 给了我“null”而不是扫描的数字(例如 0123456789012)
拜托,你能告诉我我哪里错了吗?非常感谢 !
第一个代码(Page2.java,我得到“scanContent2”,我需要的变量):
public class Page2 extends Activity implements OnClickListener {
@SuppressLint("ClickableViewAccessibility")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page2);
scanBtn2 = (Button) findViewById(R.id.scan_button2);
scanBtn2.setOnClickListener(this);
}
public Button scanBtn2;
public String scanContent2;
@Override
public void onClick(View v) {
if (v.getId() == R.id.scan_button2) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null) {
scanContent2 = scanningResult.getContents();
Intent intenta = new Intent(getApplicationContext(),ListItem.class);
intenta.putExtra("theScanContent2", scanContent2);
startActivity(intenta);
} else {
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
}
第二个代码(ListItem.java,我在吐司上得到“null”):
public class ListItem extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item);
String scanContent2 = getIntent().getStringExtra("theScanContent");
Toast toast = Toast.makeText(getApplicationContext(),
"BarCode number: " + scanContent2, Toast.LENGTH_SHORT);
toast.show();
}
}
解决方案
在以下行的Listitem.java中,
String scanContent2 = getIntent().getStringExtra("theScanContent");
您正在尝试获取带有键theScanContent的字符串,同时您将带有键theScanContent2的 scanContent2 放在 Page2.java 中
intent.putExtra("theScanContent2", scanContent2);
确保 Intent 的键相同,同时将数据放入 Intent 并从 Intent 访问数据以避免得到空结果。
推荐阅读
- javascript - 错误:UnhandledPromiseRejectionWarning:TypeError:args2[1].join 不是函数
- python - 增强分类模型以预测“未知”而不是错误分类
- python - 在python中合并多个或条件
- asp.net - Facebook 附加带有出站链接的 fbclid 和显示“ERR_CONNECTION_RESET”的网页
- javascript - 使用 Fabric JS 创建复选框机制
- azure-functions - Azure Functions 业务流程中的主动活动重试
- oauth-2.0 - 请求具有无效的身份验证凭据 - Google Calendar API
- javascript - JavaScript消息隐藏时屏幕滚动到顶部
- json - 通过 Windows CLI 创建 AWS IAM 角色
- javascript - 每次单击时显示不同的组件(使用挂钩)