0

所以我对 Android 开发和一般的 Java 编程很陌生(嗯,好吧,所以编程期......),所以我遇到了一些我在网上找到答案的东西,但我想知道它为什么有效。

我根据该 Android 教程网站上的代码创建了一个与创建 AlertDialog 相关的类。然后,在另一个活动中,我创建了一个实例化此 AlertDialog 类的对象的方法。然后,我尝试使用 .show() 来实际调用 AlertDialog。

没有任何参数它就无法工作,所以我必须传递给它的两个参数是 getFragmentManager() 和任何类型的文本,只要它在引号中,就像这样:

alertDialogObject.show(getFragmentManager(), "嗨");

最后,在这样写之后,错误消失了,AlertDialog 框在我的应用程序中弹出 uo 就好了。有人可以向我解释一下我传递给 show() 的基础知识,以及 show() 想要什么样的参数吗?

谢谢您的帮助!!!

4

1 回答 1

0

如果没有指向您所指的教程的链接,我将假设您正在谈论DialogFragment基于代码片段的 a 的实现:

alertDialogObject.show(getFragmentManager(), "Hi");

对于关于“我传递给什么show()“什么样的参数show() wants的问题的最佳答案,您可能应该参考该类的文档DialogFragment

要更具体地回答第二个问题,请查看两种可用的show(...)方法。顺便说一下,这些在 Java 术语中称为“重载”:具有相同名称但接受不同参数的方法。在文档中,每个方法通常都有简短的描述,解释它的作用、它的返回值是什么以及预期的参数是什么。这两个也不例外:

public int show(FragmentTransaction transaction, String tag)

显示对话框,使用现有事务添加片段,然后提交事务。

public void show(FragmentManager manager, String tag)

显示对话框,将片段添加到给定的 FragmentManager。这为显式创建事务、使用给定标签添加片段并提交它提供了便利。这不会将事务添加到后台堆栈。当片段被解除时,将执行一个新事务以将其从活动中删除。

.show(...)因此,您可以选择使用FragmentTransaction或调用FragmentManager,后跟标签。在如何处理事务和/或管理器的方式上有大量的资源。如果您想了解更多相关信息,我建议您从任何解释活动和片段的概念(以及它们之间的区别)的教程或 Android 书籍开始。如果它是您所追求的示例,请务必阅读 Android SDK 附带的 API 演示。

于 2013-04-27T02:57:12.170 回答