[Android] Intent|Jump page and exchange data

Intent solves the communication between the various components of the Android application.

Jump to another Activity and pass the value

MainActivity page->Main2Activity

MainActivity page code:

Intent intent = new Intent();
intent.setClass(MainActivity.this, Main2Activity.class);
intent.putExtra("data", "把我送到Main2Activity页面");
startActivity(intent);

Main2Activity page code:

//Main2Activity页面创建的函数
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    Intent i=getIntent();//因为 Mian2Activity 是通过 intend 来启动的,所以
    //通过getIntend 来获取与这个 Activity 相关的数据
    TextView textView=(TextView) findViewById(R.id.textView);
    textView.setText(i.getStringExtra("data"));//因为 MainActivity里通过//putExtra传递时名字是 data
}

After jumping to another Activity, jump back to the original page

  1. MainActivity page->Main2Activity
  2. Click the button of Main2Activity to jump back to MainActivity

MainActivity page code:

//Button点击事件
//点击后,跳转到Main2Activity
public void skip_InputInfo(View view) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this,Main2Activity.class);
    startActivityForResult(intent, 0);
}

Main2Activity page code:

//Button点击事件
//点击后,跳回MainActivity
public void skip_main(View view) {
    //创建一个Intent
    Intent intent = new Intent();
    intent.setClass(Main2Activity.this,MainActivity.class);
    intent.putExtra("userinfo",
            userInfoToString(getUserInfo())
    );
    //设置结果
    setResult(1,intent);
    //调回MainActivity
    finish();
}

MainActivity page code:

//跳回,监听事件
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    System.out.println("DEBUG::" + requestCode +" " + resultCode +" " + data);
    // RESULT_OK,判断另外一个activity已经结束数据输入功能,Standard activity result:
    // operation succeeded. 默认值是-1
    String info = data.getStringExtra("userinfo");
    System.out.print(info);
    //设置结果显示框的显示数值
    TextView textView = (TextView)findViewById(R.id.textView_info);
    textView.setText(info);
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324883781&siteId=291194637