两个没有直接关系的activity之间怎么进行数据传递即application的作用及用法
2015-01-26 19:53
836 查看
有时候,两个页面之间没有跳转关系,但是这两页面之间却需要传递一些数据,甚至说某个页面获得的数据要被之后的很多页面拿来使用,这个时候就需要applicaiton。
application是与应用程序的生命周期一致的,即只要应用程序不关掉,他就会存活。只有应用程序退出了它才会给销毁。
下面以一个例子说明怎么使用。
例子需求:MainActivity将String字符串和int的数值传递到ResultActivity
application传值的步骤:
1.创建Applicaiton的子类 将需要进行传递的数据作为application的属性
2.源Activity中获取application对象 进行存储属性值 设置属性值
3.目标Activity中获取application对象 获取设置的属性值
4.在AndroidAmifest.xml文件中注册applicaiton
<application
android:name="com.qianfeng.activitypassvalue.MyApplication">
</application>
1、创建application子类
2、
3、
4、
这样就可以运行了。
application是与应用程序的生命周期一致的,即只要应用程序不关掉,他就会存活。只有应用程序退出了它才会给销毁。
下面以一个例子说明怎么使用。
例子需求:MainActivity将String字符串和int的数值传递到ResultActivity
application传值的步骤:
1.创建Applicaiton的子类 将需要进行传递的数据作为application的属性
2.源Activity中获取application对象 进行存储属性值 设置属性值
3.目标Activity中获取application对象 获取设置的属性值
4.在AndroidAmifest.xml文件中注册applicaiton
<application
android:name="com.qianfeng.activitypassvalue.MyApplication">
</application>
1、创建application子类
public class MyApplication extends Application { private String str; private int myInt; public String getStr() { return str; } public void setStr(String str) { this.str = str; } public int getMyInt() { return myInt; } public void setMyInt(int myInt) { this.myInt = myInt; } }
2、
public class MainActivity extends Activity { private Button button; private MyApplication mapp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //返回当前activity的applicaiton对象 mapp=(MyApplication) getApplication(); mapp.setStr("凤姐"); mapp.setMyInt(38); Intent intent=new Intent(MainActivity.this,ResultActivity.class); startActivity(intent); } }); }
3、
public class ResultActivity extends Activity { private TextView tv; private MyApplication mapp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); tv=(TextView) findViewById(R.id.textView1); //获取当前activity中的appplication对象 并且获取其中设置的属性的值 mapp=(MyApplication) getApplication(); String str=mapp.getStr(); int i=mapp.getMyInt(); tv.setText("str="+str+",int="+i); } }
4、
这样就可以运行了。
相关文章推荐
- Android学习【2】Activity之间通过Application进行数据传递
- 两个Activity之间传递数据的全部方法以及Parcelable接口的用法
- android85--两个Activity之间怎么传递数据?
- Android中在两个Activity之间进行数据传递
- 两个Activity之间怎么传递数据?
- 3. 调用另一个Activity,并两个Activity之间相互传递数据
- Android activity之间数据传递和共享的方式之Application
- Android 在两个 Activity 之间传递数据
- 两个Activity之间传递图片数据
- Android 在两个 Activity 之间传递数据
- Android中用application在两个activity中进行数据共享(2)
- Android中两个Activity之间数据传递及返回
- Android中两个Activity之间数据传递及返回
- ASP.net中怎么在两个页面之间传递数据
- 两个没有父子关系的html之间如何传递数据
- 两个activity之间怎么传递ArrayList<HashMap<String, Object>>
- 两个activity之间传递数据用startActivityForResult方法。
- Android成长之路-关于bundle实现两个activity之间的数据传递
- [一问一答][Android] 如何在两个Activity之间传递(共享)数据
- Android之两个activity之间传递数据且有返回值