如何在两个活动中投放数据并在一个活动中生成数据

时间:2016-08-18 02:19:43

标签: android android-intent android-button

我有一个场景,当用户在活动中输入并且当用户点击该按钮时将显示其他活动中的数据输入,当用户点击该按钮时将显示所有输入的数据

在一项活动中

    @Override
public void onClick(View v) {
    if (v.getId() == R.id.btnMoveToKereta2) {
        goToForm(TransferKereta2.class);
    }
}

private void goToForm(Class<TransferKereta2> transferKereta2Class) {
    Intent intent = new Intent(getBaseContext(), TransferKereta2.class);
    intent.putExtra(Constants.FullName, inpFullName.getText().toString());
    intent.putExtra(Constants.NickName, inpNickName.getText().toString());
    intent.putExtra(Constants.Age, inpAge.getText().toString());
    startActivity(intent);
}

如果用户点击goToForm,则会转到TransferKereta2.class

@Override
public void onClick(View v) {
    if (v.getId() == R.id.btnMove) {
        goToTransfer(DetailKereta.class);
    }
}

private void goToTransfer(Class<DetailKereta> DetailKeretaClass) {
    Intent intent = new Intent(getBaseContext(), DetailKereta.class);
    intent.putExtra(Constants.Jumlah, inpJumlah.getText().toString());
    intent.putExtra(Constants.Dari, inpAsal.getText().toString());
    intent.putExtra(Constants.Ke, inpTujuan.getText().toString());
    startActivity(intent);
}

如果用户点击goToTransfer,则所有数据都会显示在DetailKereta.class

DetailKereta.class

        TextView tv_name = (TextView)findViewById(R.id.tv_fullName);
    TextView tv_nname = (TextView)findViewById(R.id.tv_nickName);
    TextView tv_umur = (TextView)findViewById(R.id.tv_umur);
    TextView tv_jumlah = (TextView)findViewById(R.id.tv_jumlah);
    TextView tv_asal = (TextView)findViewById(R.id.tv_asal);
    TextView tv_tujuan = (TextView)findViewById(R.id.tv_tujuan);

    Intent intent = getIntent();

    tv_name.setText(intent.getStringExtra(Constants.FullName));
    tv_nname.setText(intent.getStringExtra(Constants.NickName));
    tv_umur.setText(intent.getStringExtra(Constants.Age));
    tv_jumlah.setText(intent.getStringExtra(Constants.Jumlah));
    tv_asal.setText(intent.getStringExtra(Constants.Dari));
    tv_tujuan.setText(intent.getStringExtra(Constants.Ke));

我使用常量来保存来自2个输入活动的数据

2 个答案:

答案 0 :(得分:0)

您需要将额外内容从活动传播到活动。

添加

intent.putExtras(this.getIntent());

启动新意图的每个方法,以便您也可以发送当前活动创建的意图。

答案 1 :(得分:0)

这是由onActivityResult(int requestCode, int resultCode, Intent data)完成的 它将数据从第二个活动返回到调用活动。 请参阅link