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