android - 在应用更改后将数组传递回主要活动
问题描述
我正在制作停车导航系统。我已经为车库制作了数组并将其传递给其他停车活动,现在该活动发生了变化,我必须将其传递回车库活动。需要一个更简单的解决方案。提前致谢
这是代码,我试过了:
GarageActivity
int[] g1 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int[] g2 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int[] g3 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int[] g4 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int[] g5 = {0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
int[] g6 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
b1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick (View v){
Intent it = new Intent(Start.this, MainActivity.class);
it.putExtra("g1", g1);
startActivity(it);
}
});
ParkingActivity
public void onClick(View v) {
if (tx1Count == 0) {
v.setBackgroundResource(R.color.redColor);
tx1Count = 1;
b[0] = 1;
Toast.makeText(MainActivity.this, "Parking Alloted", Toast.LENGTH_SHORT).show();
} else if (tx1Count == 1) {
v.setBackgroundResource(R.color.Green);
tx1Count = 0;
b[0] = 0;
}
}
});
解决方案
你将不得不改变你的方法来开始新的活动。首先,您必须像这样启动它:
private int request_code = 10
startActivityForResult(createIntentWithData(yourList,request_code)
接下来,您的车库必须实施 Parcelize 以将其放入已创建意图的捆绑中。
在您的第一个活动中,您必须覆盖 onActivityResult 方法,并在那里检索数据。
要将数据放在将要更新的第二个活动中,您可以使用以下内容:
@Override
public void onBackPressed() {
Intent data = new Intent();
data.putExtra("key", yourDataHere);
setResult(Activity.RESULT_OK, data);
super.onBackPressed();
}
推荐阅读
- arrays - 为什么我的 VBA 数组返回空单元格,除非我指定索引?
- firebase - 将 PWA 的所有图像从 firebase 存储下载到缓存中
- r - 将嵌套的xml解析为R中的Dataframe
- c# - 如何在 C# 代码中访问 REST API 端点
- javascript - 引导选择所需的验证无法正常工作
- android - 获取当前在前台和后台运行的应用程序列表
- javascript - Netlify、socket.io 和 Node.js 不合作
- c++ - UDP 多播错误未收到消息
- java - Jmeter线程组持续时间
- snowflake-cloud-data-platform - 批量雪花合并查询