在应用更改后将数组传递回主活动

时间:2018-07-25 13:10:43

标签: 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;
        }
    }
});

1 个答案:

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