首页 > 解决方案 > 在应用更改后将数组传递回主要活动

问题描述

我正在制作停车导航系统。我已经为车库制作了数组并将其传递给其他停车活动,现在该活动发生了变化,我必须将其传递回车库活动。需要一个更简单的解决方案。提前致谢

这是代码,我试过了:

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

标签: android

解决方案


你将不得不改变你的方法来开始新的活动。首先,您必须像这样启动它:

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

推荐阅读