Android getActivity()在何处定义?

Android getActivity()在何处定义?,android,methods,android-alertdialog,Android,Methods,Android Alertdialog,我对android非常陌生,我正在关注这一点 代码说我们需要执行以下步骤才能获得对话框: AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // 2. Chain together various setter methods to set the dialog characteristics builder.setMessage(R.string.dialog_message) .setT

我对android非常陌生,我正在关注这一点

代码说我们需要执行以下步骤才能获得对话框:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage(R.string.dialog_message)
       .setTitle(R.string.dialog_title);

// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();
但是
getActivity()
方法在哪里定义

我找不到该方法。

getActivity()在Fragment类中实现


请参见本文介绍了如何在
片段中创建
警报对话框。在片段中,您可以通过调用
getActivity()
方法获得相应的
Activity
。但在您的情况下,我假设您是在一个
活动中执行此操作的。因此,您不必调用
getActivity()
。只需使用

AlertDialog.Builder builder = new AlertDialog.Builder(this);
getActivity();是android Fragment的一种方法,如果您想在活动中显示对话框,只需传递活动的
这个
,而不是
getActivity()

getActivity()
方法提供活动的上下文。您可以使用
YourActivityName。此
代替它

方法
getActivity()
通常在片段中使用,以获取插入或扩展它们的活动的上下文

乙二醇

或者如果您正在活动本身中编写代码,甚至

AlertDialog.Builder builder = new AlertDialog.Builder(this);
我会锻炼的。请随时询问任何疑问

getActivity()
是您从中扩展的超类活动的成员方法。它是在活动类本身中定义的。实际上,
onCreate()
onPause()
和所有其他函数本身也在父活动类中定义。

构造函数需要一个
上下文
参数<代码>上下文
可从
活动
服务
等访问,因为它们都扩展了
上下文
,并且可以作为
传递

方法
getActivity()
声明为其他人在
Fragment
类中提到的方法。

新建AlertDialog.Builder()需要上下文作为输入参数。所以试着像

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);

我有完全相同的问题,最后我发现了我真正怀疑的。。。 只需添加:

dialog.show();
…瞧。就在那里。
想知道为什么原始示例中没有说明这一点

更新android API级别23


使用
getContext()
而不是
getActivity()

//1。实例化AlertDialog.Builder及其构造函数

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
//二,。将各种setter方法链接在一起以设置对话框特征

builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);
//三,。从create()获取AlertDialog

/4。显示警报对话框

dialog.show();

getActivity当您使用时,则无需放置新的。。。 比如

使用它作为:

PendingIntent pi=PendingIntent.getActivity(this,0,intent,0); //is Right code

在这里,我们删除了提供新分配的new,但在这里,它通过活动中的getActivity(this)提供分配。

调用这样的方法与调用'this.getActivity()'相同,因此'this'对象需要该方法可用。在这种情况下,它在一个片段中嗯,我尝试了我的
MyActivity。这个
但是不起作用。请注意,我在
按钮上的
设置ClickListener
中。我没有得到任何异常。是否需要调用任何方法来显示alertbox?什么?我认为
getActivity()
返回的是活动,而不是上下文。看见
dialog.show();
PendingIntent pi=new PendingIntent.getActivity(this,0,intent,0); //is wrong
PendingIntent pi=PendingIntent.getActivity(this,0,intent,0); //is Right code