两个Activity的传递参数与回传参数

前提:建好第一个Activity(前面所学的都是只有一个Activity);

准备:创建父类为Activity的second Activity,再添加布局文件来排放控件;

      创建onCreat来设置控件;

开始:

private OnClickListener listener=new OnClickListener()
{
  
  public void onClick(View v)
  {
   Intent intent=new Intent();
   intent.setClass(MainActivity.this, secondActivity.class);

   startActivity(intent);//测试的时候有强制关闭的现象,要在intend Manifest中声明secondActivity

   }

}//创建了新的activity,测试到此。下面开始真的代码:

这是Mainactivity:

public class MainActivity extends Activity
 {
  private final static int REQUEST_CODE=1;
  private Button mainbtn = null;//为了返回参数所设置的按钮
  @Override
  public void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mainbtn = (Button) findViewById(R.id.mainbtn);
    mainbtn.setOnClickListener(listener);
   }
  private OnClickListener listener=new OnClickListener()
   {
    public void onClick(View v)
       {
        Intent intent=new Intent();
        intent.setClass(MainActivity.this, secondActivity.class);//通过setclass来跳转到第二个activity
        //startActivity(intent);//
测试的时候有强制关闭的现象,要在intend Manifest中声明secondActivity,(*)属于传递函数的例子部分,在返回参数的例子中才注释掉的

        intent.putExtra("str", "Goodbye Lynn");//传递参数到第二个activity,也可以是对象,从而进入到secondActivity----(1)

    (2)startActivityForResult(intent, REQUEST_CODE);//属于开始进入返回参数的例子部分,REQUEST_CODE是一个整型变量---(3)

//(3)调用startActivityForResult后,当第二个activity结束后会调用onActivityResult返回参数给第一个activity
       }
   };
  protected void onActivityResult(int requestCode, int resultCode, Intent data)
   {
       if (requestCode==REQUEST_CODE)
        {
           if (resultCode==secondActivity.RESULT_CODE)
            {
             Bundle bundle=data.getExtras();
             String str=bundle.getString("back");
             Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
            }
        }
   }

} 

这是Secondactivity:

public class secondActivity extends Activity
 {
   public final static int RESULT_CODE=1;
   private TextView secondTxt;
   private Button secondBtn;
   @Override
   protected void onCreate(Bundle savedInstanceState)
    {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.second);
 (1)Intent intent=getIntent();//声明要接受第一个activity传过来的参数,用getIngtent()
      Bundle bundle=intent.getExtras();//getExtras与putExtras呼应,返回的是一个Bundle对象,

      String str=bundle.getString("str");//使用字符串来接收Buddle里面的值,即前台的值
      secondTxt=(TextView)findViewById(R.id.secondTxt);//要先在main.xml中给TestView一个id
      secondTxt.setText(str);//使用setText放置到屏幕的上面

 

//至此已经把第一个activity的参数传递的第二个activity,并更新到屏幕上面!!!

//下面是返回参数:

//注释掉(*)部分,从(2)开始
      secondBtn=(Button)findViewById(R.id.secondbtn);//为(3)部分后的,返回按钮设定的事件
      secondBtn.setOnClickListener(listener);
    }
 private OnClickListener listener=new OnClickListener()
   {
     public void onClick(View v)
      {
       Intent intent=new Intent();
       intent.putExtra("back", "Back Data");//点击按钮后的返回参数,提示显示
       setResult(RESULT_CODE, intent);//RESULT_CODE是一个整型变量
       finish();//结束第二个activity,返回其调用它的activity
      }
    };
}

文章来自新浪博客:http://blog.sina.com.cn/s/blog_70458d0c0101605v.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值