如何从对话框片段获取主机片段中的按钮点击

2024-04-25

我有一个 listFragment,我想在 listItemClick 上显示 DialogFragment(是/否)。我想取回 listFragment 中的用户选择(是/否)。我已经阅读了有关侦听器接口机制的信息,但它与 Activityfragment 一起使用。一种方法可以是:

  1. 在包含是/否按钮选择功能的对话框片段中定义接口,并在警报对话框正/负按钮单击时调用这些方法。
  2. 在 Main 活动中实现此接口。
  3. 在 listFragment onItem 单击中启动dialogFragment。
  4. 保存活动中的用户选择。
  5. 通过在 Main 活动中实现的另一个接口在 listFragment 中获取此选择。

但是我们有任何简单的机制来完成这个简单的任务吗?有什么例子或代码吗?


还有另一种方法可以从 DialogFragment 获取结果。

您可以使用Fragment.setTargetFragment() http://developer.android.com/reference/android/app/Fragment.html#setTargetFragment%28android.app.Fragment,%20int%29。创建 DialogFragment 实例时,为其设置目标片段。然后在 DialogFragment 中你可以从中获取这个片段Fragment.getTargetFragment() http://developer.android.com/reference/android/app/Fragment.html#getTargetFragment%28%29.

例如,您可以这样做:

public interface DialogClickListener {
    public void onYesClick();
    public void onNoClick();
}
public class MyListFragment extends ListFragment implements DialogClickListener {

    ...

    private void showDialog() {
        DialogFragment dialog = new MyDialogFragment();
        dialog.setTargetFragment(this, 0);
        dialog.show(getFragmentManager(), "dialog");
    }

    @Override
    public void onYesClick() {
        // do something
    }

    @Override
    public void onNoClick() {
        // do something
    }
}
public class MyDialogFragment extends DialogFragment {
    private DialogClickListener callback;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            callback = (DialogClickListener) getTargetFragment();
        } catch (ClassCastException e) {
            throw new ClassCastException("Calling fragment must implement DialogClickListener interface");
        }
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage("message")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        callback.onYesClick();
                    }
                }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        callback.onNoClick();
                    }
                });

        return builder.create();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从对话框片段获取主机片段中的按钮点击 的相关文章

  • 使用同一个侦听器的多个活动

    我有 4 个活动 它们都包含一个 xml 页脚 其中包含 4 个按钮 每个活动一个 我现在想为这些按钮设置 onclicklistener 它是页脚中的自制菜单 问题是 如何使用侦听器以便重用代码 我有两个想法 创建一个实现 onclick
  • 音频流的最佳实践

    我正在编写一个应用程序来播放远程服务器的音频 我尝试了多种方法来实现流音频 但它们对我来说都不够好 这就是我尝试过的 幼稚地使用 MediaPlayer 就像是 MediaPlayer player new MediaPlayer play
  • 蓝牙 BLE Android 以最大吞吐量写入外设

    我们公司开发了一个具有蓝牙 BLE 的硬件单元 并且我们在 Nexus 7 2013 中有一个服务应用程序 我们希望使用它向该单元发送固件文件 文件最大可达 500kb BT芯片是德州仪器CC2540 我浏览了大量的页面 并扫描了 Stac
  • 写入 Android UI Automator 输出控制台

    我正在 Android UI Automator 上编写一个小包装器 通常我们可以在控制台看到测试用例的状态 我可以访问它并添加我自己的消息吗 我努力了System out println 但这没有用 有什么办法可以做到这一点吗 您可以使用
  • CoordinatorLayout 和 ImageView 在滚动时调整宽度的问题

    我正在尝试放置一个ImageView in a CollapsingToolbarLayout它在加载时占据整个屏幕 并且当您滚动内容时 16x9 分辨率图像宽度会调整大小 直到图像占据屏幕的整个宽度 那时 我希望图像具有视差app lay
  • Play 商店中的应用描述更新

    我想更新应用程序的描述以及 Play 商店上的屏幕截图 但应用程序保持相同 即相同的版本号 我不想发布新应用程序 因为应用程序中没有任何更改 这可能吗 谷歌也会要求更新应用程序吗 您可以更新描述 也可以更改屏幕截图 您的应用程序将保持不变
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • Android L,使用 joda.time 库的异常

    该应用程序适用于所有设备 包括 nexus 5 和 nexus 7 在 Android L 预览版上运行相同的应用程序时 应用程序崩溃了 我一直在调试 并且调用 DateTime 构造函数发现了异常 public static String
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 如何在 60 分钟后删除共享首选项

    我想存储登录数据 但希望在 60 分钟后删除该数据 执行此操作的正确方法是什么 在这 60 分钟内可以关闭 停止 打开应用程序 我不想使用内部数据库 这是我的访问代码SharedPreferences sharedpreferences g
  • AndEngine MenuScene - 无法单击按钮

    我有一个关于 android 和 andengine 的小问题 这是我的主菜单的源代码 AbstractScene is extending Scene public class MainMenuScene extends Abstract
  • 如何在同一设备上运行的 Android 应用程序之间传输文件?

    我正在编写一个与 RESTful 服务交互的 Android 应用程序 该 Web 服务本质上是一个文件系统 并提供元数据以及对文件的 CRUD 访问 我的应用程序检索元数据 并通过ContentProvider 我需要添加与我的应用程序在
  • 我在 android studio 中使用 kotlin 时出现错误

    为什么会出现这个错误 09 12 16 36 31 502 1886 1886 com getloction nourmedhat smartgate getlocation E AndroidRuntime 致命异常 main 进程 co
  • 以 HTML 格式发送电子邮件

    我想发送 HTML 格式的电子邮件 如下图所示 我怎样才能做到这一点 请帮我 提前致谢 String body new String table tr td br header td tr br br Get b Best Score b
  • TextView.setMaxLines 不起作用?

    在我的应用程序中 我有一个屏幕 其中显示一些文本 然后显示一张照片 文本的长度是可变的 有时根本没有 有时很多 所以我想对其进行设置 以便文本永远不会占用超过几行 但可以滚动 为下面的图像留下足够的空间 我这部分的视图组件是以编程方式创建的
  • 使 Recyclerview 固定高度并可滚动

    已解决以下检查答案 所以我试图为我的 Android 应用程序创建评论功能 我想在 recyclerview 中显示评论 然后在 recyclerview 下方有一个按钮和文本视图来添加评论 我想让 recyclerview 具有一定的高度
  • onPrepareOptionsMenu 复制 ActionBar 中的项目

    当我使用 onPrepareOptionsMenu 添加菜单项时 该菜单项会在操作栏中复制其自身 我正在使用片段并在主要活动的 ActionBar 中创建初始菜单 如下所示 Override public boolean onCreateO
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • Android AppWidgetManager 方法 updateAppWidget 无法设置意图、加载数据。而且它是随机发生的

    我的小部件由 2 个按钮和一个显示数据的列表视图组成 大多数时候 当调用小部件提供程序的 onUpdate 方法时 一切都会正常加载 每个人都很高兴 但是我注意到有时在调用更新方法后 小部件完全无法加载其数据 列表视图为空 所有按钮均无响应
  • 如何从DataSource.Factory获取数据

    我必须调用此方法才能获取所有人员 我根本无法修改这个方法 Query SELECT FROM PERSON TABLE ORDER BY NAME DESC abstract fun getElements DataSource Facto

随机推荐

  • 访问 bootstrap-wysihtml5 编辑器对象

    我正在尝试访问 bootstrap wysihtml5 编辑器对象 我这样做是这样的 document ready function someLink live click function var wysihtml5Editor text
  • 修复 HTML/CSS 中元素的对齐方式

    我有以下代码 function var quotes quotes var quoteIndex 1 function showNextQuote quoteIndex quotes eq quoteIndex quotes length
  • 在 C# 中跟踪文件大小变化[重复]

    这个问题在这里已经有答案了 可能的重复 C 获取文件更改事件 https stackoverflow com questions 3948542 c sharp get file change events 我想使用 C 在达到特定大小时跟
  • 从 Python 中的 OLS 摘要获取 Durbin-Watson 和 Jarque-Bera 统计数据

    我正在运行一列值的 OLS 摘要 OLS 的一部分是 Durbin Watson 和 Jarque Bera JB 统计数据 我想直接提取这些值 因为它们已经被计算出来 而不是像我现在使用 durbinwatson 那样将这些步骤作为额外步
  • 如何将对堆栈变量的引用传递给线程?

    我正在编写一个 WebSocket 服务器 其中 Web 客户端连接以与多线程计算机 AI 下棋 WebSocket 服务器想要传递一个Logger对象到 AI 代码中 这Logger对象会将日志行从 AI 传送到 Web 客户端 这Log
  • 如何在两个表单之间传递文本框数据?

    如何通过按钮在不使用 Show ShowDialog 的情况下将文本框值发送到两个表单之间的文本框 我希望文本框无需打开表单即可获取值 要访问文本框数据 您需要使用 textBox1 Text 表单是一个对象 因此您可以定义一个更新文本框值
  • 如何在我的应用中将 Google 地图语言更改为印地语?

    我在 Android 应用程序中使用 Google 地图 我在我的应用程序中实现了语言本地化 因此 我希望每当用户更改应用程序语言时 谷歌地图语言也会更改为印地语 我尝试了以下方法来更改应用程序中 Google 地图的语言 String l
  • 在 Django 中提供 Rails-way i18n 支持的好方法

    新 Rails 中有一件事让我羡慕 国际化支持 Django 也有一项 但我更喜欢 Rails 的风格 Rails 和 Django 方法之间的主要区别在于哪种字符串的行为类似于键值转换映射中的键 即 Django 版本 键 主要 语言的字
  • 在 python 中将 Latex 代码转换为 mathml 或 svg 代码

    是否有任何 python 代码允许获取乳胶代码 用于方程 并将其解析为 mathml 或 svg 代码 一个以字符串 latex 代码 作为参数并输出字符串 svg 或 mathml 代码 的简单函数将是完美的 附言 我找到了这个http
  • Bootstrap 4 导航栏
  • 列表
  • 我需要一些有关引导导航栏的帮助 Bootstrap v4 0 0 beta 3 我必须更改什么才能使按钮文本是单行而不是彼此之间 当该行已满时 其他按钮应从下一行的左侧开始 目前我使用这段代码
  • 服务器中的 Firebase 令牌管理

    我对 firebase 和 android 通知还是很陌生 我希望能够根据某些规则向单个用户发送通知 到目前为止我读到的是可以通过以下方式生成令牌 FirebaseInstanceId getInstance getToken 然后 令牌在
  • 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?

    您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗 如果是这样 它是如何完成的 这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件 例如按钮 的形状 颜色等 不 不能这样做
  • 必须在 PIMPL 中提供析构函数

    main pimpl sample cpp include pimpl sample hpp using namespace std int main pimpl sample p return 0 pimpl sample cpp inc
  • Hololens 模拟器中的网络摄像头支持

    笔记本电脑的网络摄像头可以在最新的Hololens模拟器中使用吗 我正在关注这个教程https learn microsoft com en us windows mixed reality mr azure 302 https learn
  • Byte-Buddy:方法拦截 InvoiceHandler 与 MethodDelegation 到 GeneralInterceptor

    我使用 Byte Buddy 动态生成 Java 接口方法的实现 并将对这些方法的调用委托给现有代理对象的单个方法 第一个版本的灵感来自如何使用 ByteBuddy 创建动态代理 https stackoverflow com questi
  • 根据当前用户过滤 Power BI 报告

    我们目前正在为我们公司开发 Power BI 仪表板 Office 365 并希望根据当前用户的偏好定制仪表板上的信息 我们公司有多个部门和子部门 因此向所有用户显示每个部门的数据会适得其反 例如 如果 Bob 属于欧洲销售 他将仅看到欧洲
  • 通过 Discord OAuth 传递字符串?

    我想知道是否可以使用 Discord OAuth 识别范围 同时还将重要的补充信息传递到重定向 URL site with important variable gt oauth page gt site that needs import
  • 超时设置为无限时间时出现超时异常

    在我的 C NET 3 5 应用程序中 我使用 CastleProject ActiveRecord 而不是 NHibernate 这是使用 MS SQL Server 2008 的桌面应用程序 我已将 ADO 命令超时设置为 0 以防止批
  • 语音识别和语调检测

    我想做一个 iOS 应用来计算疑问句 我会寻找 WH 问题以及 我会吗 格式化问题 我对语音或音频技术领域不太了解 但我Google了一下 发现语音识别SDK很少 但仍然不知道如何检测和绘制语调 是否有支持语调或情感语音识别的 SDK 据我
  • 如何从对话框片段获取主机片段中的按钮点击

    我有一个 listFragment 我想在 listItemClick 上显示 DialogFragment 是 否 我想取回 listFragment 中的用户选择 是 否 我已经阅读了有关侦听器接口机制的信息 但它与 Activityf