AndroidStudio学习笔记一:了解Activity
2015-12-08 12:22
453 查看
注意:特别提醒,官方帮助文档打开太慢,建议使用:http://www.android-doc.com/
一、Activity 的生命周期
二、Activity之间数据的传递
1、传递简单数据
A页面:
B页面:
2、数据传递 包Bundle
A页面:
B页面:
3、传递值对象
A、使用implements Serializable 传值(Java 语言自带的序列化) 操作简单,速度较慢
B、使用Parcelable传值(操作复杂,Studio支持比较好,速度比较快)
model:
4、获取Activity的返回参数
A、页面:
B、页面
注意事项:在A页面实现onActivityResult 方法
三、Activity的启动模式
一、Activity 的生命周期
二、Activity之间数据的传递
1、传递简单数据
A页面:
findViewById(R.id.newActivity).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent activity = new Intent(MainActivity.this, Main2Activity.class); activity.putExtra("data", "Hello word"); startActivity(activity); } });
B页面:
private TextView textWord;//接受传值Intent newActivity = getIntent();textWord = (TextView) findViewById(R.id.textView2);textWord.setText(newActivity.getStringExtra("data"));
2、数据传递 包Bundle
A页面:
Bundle b = new Bundle(); b.putString("name", "meimei"); b.putInt("age", 23); // activity.putExtras(b); activity.putExtra("data", b);
B页面:
Intent newActivity = getIntent(); // Bundle data = newActivity.getExtras(); Bundle data = newActivity.getBundleExtra("data"); textWord = (TextView) findViewById(R.id.textView2); textWord.setText(data.getString("name"));
3、传递值对象
A、使用implements Serializable 传值(Java 语言自带的序列化) 操作简单,速度较慢
activity.putExtra("user", new User("xiaomi", 23));
User user = (User) newActivity.getSerializableExtra("user"); textWord.setText(user.getName());
B、使用Parcelable传值(操作复杂,Studio支持比较好,速度比较快)
model:
public class User implements Parcelable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User(String name, int age){ this.name = name; this.age = age; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { //没有自带序列化方式,需要手动实现 dest.writeString(getName()); dest.writeInt(getAge()); } public static final Creator<User> CREATOR = new Creator<User>() { @Override public User createFromParcel(Parcel source) { return new User(source.readString(), source.readInt()); } @Override public User[] newArray(int size) { return new User[size]; } }; }
//接受值
User user = (User) newActivity.getParcelableExtra("user"); textWord.setText(user.getName());
4、获取Activity的返回参数
A、页面:
startActivityForResult(activity, 0);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); backText = (TextView) findViewById(R.id.textView123); backText.setText(data.getStringExtra("data")); }
B、页面
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(); editText = (EditText) findViewById(R.id.editText2); i.putExtra("data", editText.getText().toString()); setResult(1, i); finish(); } });
注意事项:在A页面实现onActivityResult 方法
三、Activity的启动模式
android:launchMode="singleTop"
相关文章推荐
- 从源码角度分析android事件分发处理机制
- Android Studio 简单介绍和使用问题小结
- Android ListView 设置选中item高亮状态
- Android Studio编码问题
- Jenkins构建Android项目持续集成之Jenkins的安装篇
- Android编译环境初始化浅析
- Android国外学习资源汇总(转)
- android轻量数据库SQLite的使用
- Android RecyclerView 使用完全解析 体验艺术般的控件
- android(cm11)状态栏源码分析(一)
- 分享Android开发自学笔记之AndroidStudio常用功能
- Android Studio 快捷键中英文对译
- Android ADB常用命令总结
- 我的工具太少了之Android无限轮播图片,最后一张过度动画很重要
- Android - 文件读写操作 总结
- Android:Layout_weight的深刻理解(转载于51CTO)
- android 触摸事件、点击事件的区别,执行流程
- Android BroadcastReceiver
- android Instrumentation剖析
- android-support-v7包问题