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生命周期