Android学习笔记(一)
来源:互联网 发布:西班牙无敌舰队知乎 编辑:程序博客网 时间:2024/05/16 06:14
Android-Activity(一)
Activity间数据传递
1. 向上一个Activity传递数据
假设有两个Activity,分别为Activity1, Activity2,由Activity1的Button Bstart启动Activity2,则代码如下:
Activity1: Bstart.OnClickListener( v -> { Intent int = new Intent(Activity1.this, Activity2.class); startActivityForResult(int, INTENT_ID_1); });Activity2: Bresult.OnClickListener( v -> { Intent int = new Intent(); int.putExtra("data_return", "...."); setResult(RESULT_OK, intent); finish(); });Activity1: @Override protected void onActivityResult(int request, int resultCode, Intent int) { switch(request) { case INTENT_ID_1: if(resultCode == RESULT_OK) { String data = int.getStringExtra("data_return"); ... } break; } }
但此时,存在的问题是:点击back键则无法将结果返回
此时,需要重写Activity2中的onBackPressed()方法:
@Overrideprotected void onBackPressed() { ... Intent int = new Intent(); int.putExtra("data_return", "...."); setResult(RESULT_OK, intent); finish();}
即可解决问题
2.利用Bundle传递数据
Bundle data = new Bundle();data.putString();data.putInt();data.put....Intent intent = new Intent(....);Intent.putExtra("data1", data);startActivity(intent);
Activity四种状态
1.运行
此时该Activity位于返回栈栈顶
2.暂停
非栈顶,但可见
3.停止
非栈顶,不可见,但会保留相应状态及成员变量(不可靠),当内存不足时,会被回收
4.销毁
从返回栈中移除时,则为销毁状态
当被销毁时,临时数据的保存方法
此时是这样一个情形:点击Activity1中的按键进入Activity2,再返回,则Acivity1会重新创建,则Activity1的数据会丢失。
此时采用调用onSaveInstanceState(Bundle b),并重写onCreate(Bundle b)方法来解决。
@Overrideprotected void onSaveInstanceState(Bundle state) { super.onSaveInstanceState(sate); state.putString("", ""); ....}@Overrideprotected void onCreate(Bundle b) { ... if(b != null) { String data = b.getString(".."); ... }}
阅读全文
0 0
- Android学习笔记(一)
- [Android] 学习笔记一
- Android学习笔记一
- Android学习笔记一
- Android 学习笔记(一)
- android学习笔记(一)
- Android 学习笔记一
- android学习笔记一
- Android 学习笔记一
- Android学习笔记(一)
- android学习笔记一
- Android学习笔记<一>
- Android学习笔记一
- Android学习笔记(一)
- Android学习笔记一
- Android学习笔记一
- Android学习笔记(一)
- Android IMF学习笔记一
- JAVA封装类和Class类
- Lucene 的核心索引类
- dedecms任意页面调用栏目内容标签{dede:field.content/}的方法
- 如何使QGraphicsItem不随QGraphicsView放大缩小而改变大小
- ZooKeeper 学习 (五) 开源ZkClient操作ZooKeeper
- Android学习笔记(一)
- Android源码学习——linker(2)
- dedecms中无法直接在arctype数据表中直接调取栏目链接
- PAT --- 1002. 写出这个数 (20)
- java关于异常处理只使用try-finally而不使用catch
- Local variables and pointer
- atitit 碎片化学习.docx attilax 总结
- JavaScript的eval用法
- 关于MFC List Control 中删除 选中的n行 和 单行问题