应该将哪些参数传递给.show()?

时间:2013-04-27 02:33:58

标签: java android alertdialog

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

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

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

alertDialogObject.show(getFragmentManager(),“嗨”);

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

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:0)

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

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

关于“我传递给show()“什么样的论点show() wants的问题的最佳答案,你应该参考documentation on the DialogFragment class

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

public int show(FragmentTransaction transaction, String tag)
  

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

public void show(FragmentManager manager, String tag)
  

显示对话框,将片段添加到给定的FragmentManager。   这为显式创建事务添加提供了便利   带有给定标记的片段,并提交它。这样做   不将事务添加到后台堆栈。当片段是   被解雇后,将执行新的交易以将其从中删除   活性。

因此,您可以选择使用.show(...)FragmentTransaction来呼叫FragmentManager,然后使用标记。如何处理交易和/或经理的方式有很多资源。如果您想了解更多相关信息,我建议您从任何教程或Android手册开始,它解释了活动和片段的概念(以及它们之间的差异)。如果您正在使用它的示例,请务必浏览Android SDK附带的API演示。