Androidx学习笔记(54)--- Activity返回时传递数据
来源:互联网 发布:scdma是什么网络类型 编辑:程序博客网 时间:2024/04/30 18:00
从A界面打开B界面, B界面关闭的时候,返回一个数据给A界面
步骤: 1. 开启activity并且获取返回值
startActivityForResult(intent, 0);
在新开启的界面里面实现设置数据的逻辑
Intent data = new Intent();data.putExtra("phone", phone);//设置一个结果数据,数据会返回给调用者setResult(0, data);finish();//关闭掉当前的activity,才会返回数据
在开启者activity里面实现方法 onActivityResult(int requestCode, int resultCode, Intent data) 通过data获取返回的数据
- 根据请求码和结果码确定业务逻辑
- 请求码:用来区分数据来自于哪一个Activity
- 结果码:用来区分,返回的数据时属于什么类型
请求
public void click(View c){
//跳转至选择联系人Activity
Intent intent = new Intent(this, ContactActivity.class);
//startActivity(intent);
//用这个api启动的Activity,在销毁时,系统会回调onActivityResult
startActivityForResult(intent, 10);
}
public void click2(View v){
//跳转至选择快捷回复的Activity
Intent intent = new Intent(this, CallbackActivity.class);
startActivityForResult(intent, 20);
}
//如果有Activity在销毁时返回了数据,那么就会调用此方法来接收数据
//requestCode:用来区分数据来自于哪一个Activity
//resultCode:用来区分返回的数据是什么类型的
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
String name = data.getStringExtra("name");
if(requestCode == 10){
EditText et = (EditText)findViewById(R.id.et);
et.setText(name);
}
else if(requestCode == 20){
EditText et_content = (EditText)findViewById(R.id.et_content);
et_content.setText(name);
}
}
返回给调用者
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);
ListView lv = (ListView) findViewById(R.id.lv);
final String[] objects = new String[]{
"小志",
"逼哥",
"世界级XXX",
"国服第一"
};
lv.setAdapter(new ArrayAdapter<String>(this, R.layout.item_listview, R.id.tv, objects));
//给listview设置条目的点击侦听
lv.setOnItemClickListener(new OnItemClickListener() {
//当某个条目被点击时,此方法调用
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Activity返回时传递数据,也是通过意图对象
Intent data = new Intent();
//把要传递的数据封装至意图对象中
data.putExtra("name", objects[position]);
//当前Activity销毁时,data这个意图就会传递给启动当前Activity的那个Activity
setResult(1, data);
//销毁当前Activity
finish();
}
});
}
//返回键 调用的方法 内部调用的就是finish()
@Override
public void onBackPressed() {
// super.onBackPressed(); //该调用去掉的话 返回键无效
}
0 0
- Androidx学习笔记(54)--- Activity返回时传递数据
- Androidx学习笔记(50)--- Activity在跳转时携带数据
- Androidx学习笔记(48)--- 创建Activity
- Androidx学习笔记(51)--- Activity生命周期
- Androidx学习笔记(49)--- Activity的跳转
- 返回Activity时传递数据
- 返回activity时传递数据
- Androidx学习笔记(15)-- 数据存储之openFileOutput()
- Androidx学习笔记(16)-- 数据存储之 SharedPreference
- Androidx学习笔记(17)-- 数据存储之XML
- Android_06_返回Activity时,传递数据
- Androidx学习笔记(52)--- Activity的四种启动模式
- Androidx学习笔记(9)-- logcat
- Androidx学习笔记(18)-- junit单元测试
- Androidx学习笔记(19)-- SQLite 简介
- Androidx学习笔记(21)-- SQLite 事务
- Androidx学习笔记(24)-- ArrayAdapter&SimpleAdapter
- Androidx学习笔记(24)--对话框
- Androidx学习笔记(50)--- Activity在跳转时携带数据
- Androidx学习笔记(51)--- Activity生命周期
- KMP 算法
- Androidx学习笔记(52)--- Activity的四种启动模式
- Androidx学习笔记(53)--- 横竖屏切换的生命周期
- Androidx学习笔记(54)--- Activity返回时传递数据
- Androidx学习笔记(55)--- 广播接收者
- Androidx学习笔记(56)--- IP拨号器
- Androidx学习笔记(57)--- 短信拦截器
- Androidx学习笔记(58)--- 监控SD卡状态
- Androidx学习笔记(59)--- 简易勒索软件原理
- Androidx学习笔记(60)--- 监听应用的安装、卸载、更新状态
- IPV6地址数据库导出
- 2月1日-2月13日,10小时,剩3185小时