startActivityForResult的简单使用

平时Android的页面跳转常用到startActivity,不够有时候我们需要跳转页面后返回初始页面并把数据带回来,这时候就可用到startActivityForResult了。

下面看一下效果:

下面按照使用步骤来写代码:

  • 第一步点击按钮是执行下面代码:

    1
    2
    Intent intent2 = new Intent(MainActivity.this,SecondActivity.class);
    startActivityForResult(intent2, 0);//这里0是requestCode
  • 第二步进入第二界面,然后返回:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    @Override
    public void onClick(View view) {
    switch (view.getId()){
    case R.id.btn_ok:
    Intent intent = new Intent(SecondActivity.this,MainActivity.class);
    Log.i("Kevin", "输入框内容------->"+mET.getText().toString().trim());
    intent.putExtra("kevin", mET.getText().toString().trim());//将输入框内容传回去
    setResult(RESULT_OK,intent);//这里RESULT_OK是resultCode;
    finish();
    break;
    }
    }
  • 第三步回来到初始界面,获取到第二界面数据并展示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(RESULT_OK==resultCode){
    String kevin = data.getStringExtra("kevin");
    Log.i("Kevin", "kevin-------->"+kevin);
    Toast.makeText(getBaseContext(),kevin,Toast.LENGTH_SHORT).show();
    }
    }

这里是打印出来的值:

1
2
3
4
641-641/com.kevin.tech.statusbardemo I/Kevin: 输入框内容------->hello
641-641/com.kevin.tech.statusbardemo I/Kevin: kevin-------->hello
641-641/com.kevin.tech.statusbardemo I/Kevin: 输入框内容------->nihao
641-641/com.kevin.tech.statusbardemo I/Kevin: kevin-------->nihao

好了,startActivityForResult的使用就是这么几步。