使用三个类之间的Intent传递数据

时间:2018-05-07 08:45:02

标签: android android-intent

让我有三个A,B和C类.A传递变量' name' B使用'打算'如

Intent intend = new Intent(ViewData.this, MainActivity.class);
intend.putExtra("name1", name);
ViewData.this.startActivity(intend);

B收到姓名'如

Intent intent = getIntent();
Uname = intent.getStringExtra("name1");

然后B发送变量' name'到C并将内容更改为" Ramesh"。 C发送更新后的变量' name'回来。

因此B类'名称'中变量的值必须是" Ramesh"。 但是这个名字'显示为null。

为什么变量显示为空? 获取变量' name' as" Ramesh",采取什么措施?

1 个答案:

答案 0 :(得分:0)

首先将数据从A发送到B

 Intent intend = new Intent(ViewData.this, MainActivity.class);
 intend.putExtra("name1", name);
 startActivity(intend);

并像B一样收到B

  Intent intent = getIntent();
  Uname = intent.getStringExtra("name1");

再次传递给C

 Intent intend = new Intent(this,"Your c class name.class");
 intend.putExtra("name1", Uname);
 startActivity(intend);

再次收到C级

 Intent intent = getIntent();
 Uname = intent.getStringExtra("name1");

更改值或您必须做的任何事情。然后在C

执行此操作
  Intent returnIntent = new Intent();
  returnIntent.putExtra("result",result);//your changed value here
  setResult(Activity.RESULT_OK,returnIntent);
  finish();

在班级b上这样做:

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
    if(resultCode == Activity.RESULT_OK){
        String result=data.getStringExtra("result");

        //you will get the changed data here
      }
      if (resultCode == Activity.RESULT_CANCELED) {
          //Write your code if there's no result
     }
  }
  }//onActivityResult
相关问题