Android页面中数据的传递
来源:互联网 发布:试用中心 淘宝 编辑:程序博客网 时间:2024/05/12 02:59
1. Android页面间数据传递方式(1)。
使用Intent对象实现数据的传递。
Intent intent=new Intent();
intent.setClass(ParentPage.this, ChildPage.class);
intent.putExtra("id", "this is a test");
startActivity(intent);
2. Android页面间数据传递方式(2)。
通过Intent对象获取bundle,然后进行数据的传递。
Intent intent=new Intent();
intent.setClass(ParentPage.this, ChildPage.class);
Bundle bundle = new Bundle();
bundle.putString("id", "this is a test");
intent.putExtras(bundle);
startActivity(intent);
3. Android页面间数据传递方式(3)。
使用SharedPreferences对象实现数据的传递。
sharePreferences的理解:
SharedPreferences对象,这是在多个Activity(同一包中)共享数据的方式,本质上它就是一个可以在包的范围内进行数据共享的文件。
参考代码:
SharedPreferences per=getSharedPreferences("Text", 0);
Editor editor=per.edit();
editor.putString("text", txt.getText().toString());
4. Android页面间实现返回的效果。
这个在项目中是很常见的,解决这个问题就要了解activity的生命周期了。
(1) Activity生命周期。
我们写了两个activity(FirstActivity和SecondActivity)。
FirstActivity代码:
package mars.activity04;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class FirstActivity extends Activity {
private Button myButton;
public void onCreate(Bundle savedInstanceState) {
System.out.println("FirstAcvity ---> onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button)findViewById(R.id.myButton);
myButton.setText("启动第二个Activity");
myButton.setOnClickListener(new ButtonOnClickListener());
}
protected void onDestroy() {
System.out.println("FirstAcvity --->onDestory");
super.onDestroy();
}
protected void onPause() {
System.out.println("FirstAcvity --->onPause");
super.onPause();
}
protected void onRestart() {
System.out.println("FirstAcvity --->onRestart");
super.onRestart();
}
protected void onResume() {
System.out.println("FirstAcvity --->onResume");
super.onResume();
}
protected void onStart() {
System.out.println("FirstAcvity --->onStart");
super.onStart();
}
protected void onStop() {
System.out.println("FirstAcvity --->onStop");
super.onStop();
}
class ButtonOnClickListener implements OnClickListener{
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(FirstActivity.this,SecondActivity.class);
FirstActivity.this.startActivity(intent);
}
}
}
SecondActivity代码:
package mars.activity04;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SecondActivity extends Activity {
private Button secondButton;
protected void onCreate(Bundle savedInstanceState) {
System.out.println("SecondActivity--->onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
secondButton = (Button)findViewById(R.id.secondButton);
secondButton.setOnClickListener(new ButtonOnClickListener());
}
protected void onDestroy() {
System.out.println("SecondActivity--->onDestory");
super.onDestroy();
}
。。。。。。。不重复使用了。
class ButtonOnClickListener implements OnClickListener{
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(SecondActivity.this,FirstActivity.class);
SecondActivity.this.startActivity(intent);
}
}
}
这两个activity重新写了onCreate()、onDestroy()、onPause()、onRestart()、onResume()、onStart()、onStop()方法,每个方法只打印了一句话。
在日志过滤器中我们可以看到这些方法执行的顺序:
对应的activity界面:
接下来我们点击按钮:
日志文件:
由此我们可以看出,activity的生命周期是:先调用onCreate()-----onStart()-----onResume(),当页面要跳转的时候,先执行onPause(),等到SecondActivity的onCreate()-----onStart()------onResume()执行完毕后,FirstActivity才会执行onStop()方法。
SecondActivity页面。
当我们点击按钮时log文件显示:
调用的方法的顺序和上面有个地方不一样,由于栈内存中已经存在FristActivity了。这次调用的方法是onRestart()方法。
重点:虽然secondActivity执行了onStop()方法,但是并不知将这个activity重栈内存中删除了,知识不可见了。只有当执行了finish()方法,从栈内存中销毁掉。
5. Android实现对象的传递。
实现对象的传递可以使用两种方法实现。
(1) 使用Bundle的putSerializable实现对象传递.
(2) 使用Bundle的putParacelable实现对象传递。
- Android页面中数据的传递
- Android-Activity页面之间的数据传递
- Android-Activity页面之间的数据传递
- Android中利用Intent传递数据到另一个页面
- ASP.NET页面间数据传递小结,浅谈ASP中Web页面间的数据传递
- android中intent传递数据的方式
- android 程序中数据的传递
- Android系列之Activity页面之间的数据传递
- Android-Activity的基本介绍和页面之间数据传递
- Android——Activity页面之间的数据传递
- 浅谈ASP中Web页面间的数据传递
- 浅谈ASP中Web页面间的数据传递
- 浅谈ASP中Web页面间的数据传递
- 浅谈ASP中Web页面间的数据传递
- 浅谈ASP中Web页面间的数据传递
- 浅谈ASP中Web页面间的数据传递[转]
- ASP.net中页面间传递数据的方法。
- 浅谈ASP中Web页面间的数据传递
- 单片机MCS-51系列指令快速记忆法
- MFC DLL中加载图标
- Bitmap和Drawable的转换
- freebsd 和linux查看本地监听的端口
- 现实迷途 第二十章 峰回路转
- Android页面中数据的传递
- @property常用属性的解释
- 小亮浅谈mongo
- mongo中实现数据的导出和导入
- 什么是电平?
- Android 开发配置常见问题解决
- Mongo的高级查询
- OpenStreetMap初探(九)——发布自己的 Web Map Service
- Gearman后台job处理流程