2013-04-27 92 views
0

因此,我对Android开发以及一般的Java编程(很好,没关系,所以编程期间......)都很陌生,所以我遇到了一些我在网上找到答案的东西,但我想知道为什么作品。什么参数应该传递给.show()?

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

它不会不带任何参数工作,所以两个参数我要传递给它是getFragmentManager(),和任何类型的文本,只要它是在报价,这样的:

alertDialogObject。 show(getFragmentManager(),“Hi”);

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

感谢您的帮助!

+1

如果你需要帮助,那么你可能需要提供你所做的一些小代码。 'AlertDialog''扩展了Dialog',它有一个不带参数的[show()](http://developer.android.com/reference/android/app/Dialog.html#show())方法,所以我不是确定你有什么 – codeMagic 2013-04-27 02:48:59

+0

如果你现在停下来回去练习java的基础知识,你将会对Android有更多的愉快时光。 – FoamyGuy 2013-04-27 02:52:04

回答

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(...)要么用FragmentTransactionFragmentManager的选择,其次是标签。如何与交易和/或经理一起工作的方式有大量的资源。如果您想更多地了解这一点,我建议您从任何教程或Android书籍开始,解释活动和片段的概念(以及它们之间的区别)。如果它是您追求的例子,那么一定要通过Android SDK附带的API演示。