Activity几种数据传递的方法

 

 

 

1 传递数据 Application(与Web中的全局变量一样) 

  步骤:1)定义一个类实现Application 2)主的xml中application的属性中添加name="类的路径"

        3)  Activity中调用 调用 ,定义的类的实例 = (类) getApplication();并且改变里面的数值

4)在任何其他地方调用这个方法取出数据

 

2  剪切板来传递数据 

    1)得到剪切板对象 2)在另一个Activity中得到数据

    ClipboardManager cbManager= (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE );

    cbManager.setText("牛魔王,签收观音");

    2)在另一个Activity中得到数据

String name =cbManager.getText().toString();

    Toast.makeText(HtmlActivity.this ,"测试App+=="+ name, Toast.LENGTH_SHORT).show();

 

 

3 Intent 来传递数据 (推荐,但是不能传递不能序列化的数据 )

Intent intent = new Intent(this, GradViewActivity.class);

        String message =  "按钮过 ";

        intent.putExtra(EXTRA_MESSAGE, message);

4 静态变量 (类的静态变量数据可以共享特性)

  将数据保存在静态变量中,然后启动另一个Activity后在另一个Activity中取出数据 

 

5 Activity 调用Activity后回传数据 (数据回传)

 1)主的Activity中调用以下方法启动Activity2,并重写onActivityResult

	Intent intent = new Intent(this, PassDataMainActivity2.class);
	startActivityForResult(intent , REQUESTCODE);


	 @Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		Log.e("onActivityResult==", "====onActivityResult==") ;
		if(resultCode==2 ){
			if(resultCode==REQUESTCODE){
				Bundle b = data.getExtras();
				String r = b.getInt("result")+"";
				
				result.setText( r);		
			}
		}
	}

 

 2)将计算好的数据放到Intent中调用setResult返回数据,调用finish结束Activity

  

	Intent intent2 = new Intent();
	int three = Integer.parseInt(edit.getText().toString());
	intent2.putExtra("result",  three);
	setResult( 2,intent2 ); //回传intnet 
	finish(); //结束当前activity生命周期 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值