Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >onActivityResult未通过自定义适配器在片段对话框中调用

onActivityResult未通过自定义适配器在片段对话框中调用
EN

Stack Overflow用户
提问于 2017-01-10 03:41:36
回答 2查看 731关注 0票数 0

对Android来说还挺新鲜的。我有以下情况:

  1. 应用程序从主活动开始,在这里我添加了一个片段
  2. 在这个片段中,是一个由自定义适配器填充的列表视图,我将把FragmentActivity的一个实例传递给适配器。呼叫: ExpandableListAdapter listAdapter新ExpandableListAdapter(mContext,mActivity,listDataHeader,listDataChild);

执行情况:

代码语言:javascript
代码运行次数:0
复制
 public ExpandableListAdapter(Context context, FragmentActivity activity, List<String> listDataHeader, HashMap<String, List<String>> listChildData) {
        this._context = context;
        this._activity = activity;
        this._listDataHeader = listDataHeader;
        this._listDataChild = listChildData;
    }
  1. 当您单击列表中的项时,它会打开一个包含编辑文本字段的对话框,即:名称、姓氏、单元格。我将FragmentActivity作为上下文传递给对话框: TxtListChild.setOnClickListener(新View.OnClickListener() {@覆盖公共无效onClick(View v) { final Dialog对话框=新SelectContactDialog(_activity);dialog.show();});
  2. 然后,当打开Select的3个字段中的任何一个时,我将使用传递的FragmentActivity调用startActivityForResult,如下所示: 私有类ContactListener扩展活动实现了View.OnFocusChangeListener {@覆盖公共空onFocusChange(视图v,布尔值hasFocus) { if (hasFocus) {意向=新意图(Intent.ACTION_PICK,Contacts.CONTENT_URI);_activity.startActivityForResult(意图,CONTACTS_RESULT);}}@覆盖受保护的空洞onActivityResult(int requestCode,int resultCode,意向数据){ super.onActivityResult(requestCode,resultCode,data);if (requestCode == CONTACTS_RESULT & resultCode == RESULT_OK) { String cell = "?",firstName = "?",lastName = "?";uriContact = data.getData();游标=空;mCell.setText(单元格);mLastName.setText(lastName);mFirstName.setText(firstName);}

到现在为止一切都很顺利。所以我现在的问题是,当用户选择一个联系人时,我想得到结果。我在下面尝试过,但是从未调用过onActivityResult重写方法。我不知道该怎么做,似乎其他人和我有不同的地方,他们的解决方案对我没有用。

有人知道我能做什么吗?

EN

回答 2

Stack Overflow用户

发布于 2017-01-10 04:22:42

我建议为此使用一个接口。例如,创建必须在活动中实现的接口ContactCallback。创建适配器时,传递this (这意味着接口)。当您单击适配器内的项调用时,传递的回调将类似于callback.onContactSelected()。在活动中实现的onContactSelected()内部,您可以打开对话框。

更新:

对于您的问题,您的onActivityResult()从未被调用过:

您的清单中有一条名为"android:launchMode="singleTask"的行吗?移除它,它应该被调用。下列情况可能导致接收结果出现问题:

  • 检查您是否正确地使用startActivityForResult(),不要使用startActivity()
  • 如果您在overriden onBackPressed方法中执行某些操作,则必须将super.onBackPressed();定位在该方法的最后一行,而不是位于第一行。
  • 删除清单或等效参数中的android:launchMode="singleInstance"以创建意图。
  • 删除被调用活动清单中的noHistory="true"
  • 检查setResult()是否漏掉了。
  • 调用finish()来关闭该活动。使用finishActivity()关闭被调用的活动。
  • 使用requestCode大于零。负值不起作用。
票数 2
EN

Stack Overflow用户

发布于 2017-01-10 03:46:36

您需要调用它才能让您的onActivityResult被调用。在您的对话框中,当您正在关闭时,将此代码放入

代码语言:javascript
代码运行次数:0
复制
   Intent returnIntent = new Intent();
    returnIntent.putExtra("result",result);
    setResult(Activity.RESULT_OK,returnIntent);
    finish();
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41567978

复制
相关文章
Android开发笔记(一百六十二)蓝牙设备的连接与配对
蓝牙是一种短距离无线通信技术,它由爱立信公司于1994年创制,原本想替代连接电信设备的数据线,但是后来发现它也能用于移动设备之间的数据传输,所以蓝牙技术在手机上获得了长足发展。 因为手机内部的通讯芯片一般同时集成了2G/3G/4G、WIFI和蓝牙,所以蓝牙功能已经是智能手机的标配了。若想进行蓝牙方面的开发,需要在App工程的AndroidManifest.xml中补充下面的权限配置:
aqi00
2019/01/18
3.3K0
java中的onresume_java – onActivityResult()之前调用onResume()?
isLoggedIn = prefs.getBoolean(“isLoggedIn”, false);
全栈程序员站长
2022/08/26
2790
在 Visual Studio Code 中添加自定义的代码片段
你可以在 Visual Studio Code 的菜单中找到代码片段的设置入口,在 File -> Preferences -> User Snippets 中。
walterlv
2023/10/22
1.1K0
在 Visual Studio Code 中添加自定义的代码片段
Odoo 通过Javascript调用模型中自定义方法
那问题来了,如果希望在普通的javascript函数中使用上述请求功能,咋办?参考如下示例代码
授客
2023/02/26
1.3K0
在java中通过API调用HBase入门学习
在之前的文章hdfs API学习中,我们已经能够成功连接hdfs,并对文件进行读写。hbase数据库的操作也非常简单,但你需要先大致了解一下hbase的架构。
zhangheng
2020/12/01
1.2K0
在小程序中调用API在小程序中自定义弹窗组件
表明它是一个组件,我们称之为“子组件” 3. 注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。(只使用class)
九旬
2020/10/23
3K0
android onresume函数,android – 在Activity中重新创建后未调用onResume
在应用程序设置中进行某些更改时,我在recreate的onActivityResult中调用MainActivity。重新创建后,不调用onResume。
全栈程序员站长
2022/09/05
3.4K0
适配器在JavaScript中的体现
适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题、整合多个第三方SDK的调用,都可以看到它的身影。 其实在日常开发中,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就是老前辈们总结提炼出来的一些能够帮助提升开发效率的一些模版,源于日常的开发中。 而适配器其实在JavaScript中应该是比较常见的一种了。
贾顺名
2019/12/05
1.4K0
VSCode 添加用户代码片段,自定义用户代码片段
在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。
Cell
2023/09/15
1K0
VSCode 添加用户代码片段,自定义用户代码片段
在 Discourse 中如何使用输入对话框
如下图显示的内容,可以在输入框中输入文本,然后在主题中可以根据你输入的文本重新生成字符串:
HoneyMoose
2021/09/08
2.2K0
在 Discourse 中如何使用输入对话框
在 Node 中调用 Python
在 Node 中如何调用 Python 的方法?通常可以通过 REST 接口或者 RPC 的方式来完成,但是某些时候我们仅仅只需要调用对方几个很简单的方法,这种情况下去构建一个提供 REST 接口的服务或者两者对接实现 RPC 调用,这种做法的成本显然有点高。本文将会介绍一种更轻量的调用方式。
凌虚
2020/07/17
5.7K0
在Java中调用Python
在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢。当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单。恰好我在项目中就遇到了这个问题,需要在Java程序中调用Python程序。关于在Java中调用Python程序的实现,根据不同的用途可以使用多种不同的方法,在这里就将在Java中调用Python程序的方式做一个总结。
编程随笔
2019/09/11
5.1K0
在Java中调用Python
【Android 应用开发】BluetoothAdapter解析
这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 
韩曙亮
2023/03/27
2.2K0
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
全栈程序员站长
2022/07/05
1.9K0
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
欢醉
2018/01/22
2.3K0
适配器模式在Mybatis中的妙用
> 公众号:[Java小咖秀](https://t.1yb.co/jwkk),网站:[javaxks.com](https://www.javaxks.com)
Java小咖秀
2021/03/23
6630
适配器模式在Mybatis中的妙用
自定义Qt对话框
今天就简单简单写个自定义对话框分享给大家。 演示 上代码! 自定义对话框的使用: #include <QApplication> #include <QDebug> #include "Dialog
Qt君
2020/07/17
1.7K0
Android开发笔记(六十七)嵌入页面的碎片
Android从3.0之后引入了Fragment,可以把它理解为页面的一个片段,比如一个html网页就包含一个header头部片段,以及一个body身体片段。 设计Fragment的目的是让页面布局更加灵活,不但可以随意组装和拼接各个片段,还可以只更新某个片段实现页面局部更新的功能(这个类似网页的ajax技术)。Fragment可以协助我们完成如下任务: 1、在一个页面中嵌入多个连续可翻页的子视图,方面使用ViewPager统一管理; 2、开发一些通用的小部件,内部封装好代码逻辑,可直接嵌入到任意页面。比如广告、地图等组件; 3、同一套代码可适配不同尺寸的屏幕,比如说同时适配竖屏与横屏,同时适配手机与平板等等;
aqi00
2019/01/18
1.3K0
android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」
在Android上提到适配器模式就会想到最常用的ListView和BaseAdapter
全栈程序员站长
2022/09/03
7440
点击加载更多

相似问题

在对话框片段中未调用onActivityResult

31

片段中未调用onActivityResult

14

片段中未调用onActivityResult()

10

片段中未调用onActivityResult

36

片段中的onActivityResult未调用

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文