android5大参数传递方式

Android的意图(intent)之参数传递的5中方式

 [

  application(全局变量

  clipboard(剪切板服务),

  static(静态变量),

  intent common put(意图通用传递),

  activityResult(返回数据的activity

 ]

1.appplication方式,类似于servlet中四大作用域中的application范围。

实现:

清单文件:

android5大参数传递方式 - 梦来梦往2013 - 梦来梦往的博客
继承Application的类MyApp:

public class MyApp extends Application{
private String globalString;
public String getGlobalString() {
return globalString;
}
public void setGlobalString(String globalString) {
this.globalString = globalString;
}
}

 在主activity中得到app,app = (MyApp) getApplication();然后设置值到app中app.setGlobalString(et.getText().toString());

再在下一个意图打开的activity中获取设置的值:MyApp app = (MyApp) getApplication();

//在这个activity中的textview中显示

tv.setText(app.getGlobalString());


2.剪切板服务传递参数。

//获得剪切板的系统服务
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);


clipboardManager.setText(res);

3.静态变量参数传递。

public class Static {
public static String name = "default";
public static int age = 0;
public static String sex = "男";
}

在主activity中设置值,在下一个activity中获取值。

4.意图通用参数传递。

Intent intent = new Intent();
intent.setClass(Passdata_intent_static_varActivity.this,OtherActivity.class);

//设置值

intent.putExtra("name1", nameStr);


//获取值

//得到意图对象
Intent intent = getIntent();
String name = intent.getStringExtra("name1");

5.参数传递并返回

//传递参数到下一个activity中和4类似,只是开启意图到下一个activity中是需要开启

//开启返回结果的activity
startActivityForResult(intent, REQUEST_CODE);

//需要监听事件

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
Log.i("MG","返回主窗体");
if(resultCode == RESULT_OK){
if(requestCode == REQUEST_CODE){
String returnStr = data.getExtras().getString("return1");
Log.i("MG","get return return1="+returnStr);
TextView acceptReturn = (TextView) findViewById(R.id.acceptReturn);
acceptReturn.setText(returnStr);
}
}
//super.onActivityResult(requestCode, resultCode, data);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值