Android Activity传值 回传

  1. 简单介绍

    在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来指定我们要完成的一个action操作,同时我们可以通过intent来携带一些值,进而来Activity见跳转的时候也可以把值传过去。

    通过setClass方法来指定我们要跳转的Activity
    Intent intent=new Intent(this,SecondActivity.class);

intent.putExtra(key,value);

startActivity(intent);

//或者

Intent intent=new Intent();

intent.setClass(MainActivity.this,SecondActivity.class);

intent.putExtra(key,value);

startActivity(intent);

点击事件

  @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    根据索引获取对象然后传对象  对象不能直接传需要序列化一下
    tab tab = list.get(position);
    Intent intent = new Intent(MainActivityList.this,MainActivitygai.class);
    intent.putExtra("student", tab);
    1是俩端定义的相当于端口号和下面方法中判断的必须一致
    startActivityForResult(intent, 1);
}

回传的话需要调用此方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    判断俩端端口号是不是一致
    if (requestCode==1&&resultCode==1) {
        tab student=(tab) data.getSerializableExtra("name");
        list点set方法进行修改 然后刷新数据
        list.set(index, student);
        adapter.notifyDataSetChanged();
    }
}
  • 传到另一个页面 点击把值传回去
    intent = getIntent();
    序列化过后的对象
    tab = (tab) intent.getSerializableExtra(“student”);
    传值接收那个页面传过来的值
    mt2.setText(tab.getTitle());
    mc2.setText(tab.getUrl());

    • @Override
      public void onClick(View v) {
      String string = mt2.getText().toString();
      String string2 = mc2.getText().toString();
      把修改完以后的数据传回去
      tab.setTitle(string);
      tab.setUrl(string2);
      intent.putExtra(“name”, tab);
      setResult(1, intent);
      finish();

    }

猜你喜欢

转载自blog.csdn.net/weixin_42996187/article/details/81778017