getActivity()在哪里定义?

时间:2013-01-23 12:47:56

标签: android methods alertdialog

我对android很新,我正在关注这个example

代码说我们需要执行以下步骤来获取对话框:

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()方法定义在哪里?

我找不到那种方法。

11 个答案:

答案 0 :(得分:46)

getActivity()方法给出了Activity的上下文。您可以使用YourActivityName.this代替它。

方法getActivity()通常用于片段中,以获取插入或夸大它们的活动的上下文。

例如

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

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

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

会锻炼。请随时提出疑问

答案 1 :(得分:2)

new AlertDialog.Builder()需要Context作为输入参数。所以试试

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

答案 2 :(得分:1)

getActivity()在Fragment类中实现。

请参阅http://developer.android.com/reference/android/app/Fragment.html

答案 3 :(得分:1)

构造函数AlertDialog.Builder需要Context参数。可以ContextActivity等方式访问Service,因为它们都是extend Context,并且可以this传递。

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

答案 4 :(得分:0)

本文介绍如何在AlertDialog中创建Fragment。在片段中,您可以通过调用Activity方法获取相应的getActivity()。但在你的情况下,我假设你在Activity中这样做。所以你不必打电话给getActivity()。只需使用this

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

答案 5 :(得分:0)

getActivity();是一种android Fragment的方法,如果你想在你的活动中显示对话框,只需传递你活动的this而不是getActivity()

答案 6 :(得分:0)

getActivity()是您扩展的超类Activity的成员方法。它在 Activity 类本身中定义。 infact onCreate()onPause()和所有其他函数本身也在父 Activity 类中定义。

答案 7 :(得分:0)

我有完全相同的问题,最后我找到了我真正怀疑的...... 只需添加:

dialog.show();

......瞧。它就是。 不知道为什么原始示例中没有说明这一点!?

答案 8 :(得分:0)

更新android API级别23。

使用getContext()代替getActivity()

答案 9 :(得分:0)

// 1.使用构造函数

实例化AlertDialog.Builder
AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);

// 2.将各种setter方法链接在一起以设置对话框特征

builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);

// 3.从create()

获取AlertDialog
AlertDialog dialog = builder.create();

// 4.显示AlertDialog

dialog.show();

答案 10 :(得分:0)

getActivity当你使用时,不需要把新... 比如

PendingIntent pi=new PendingIntent.getActivity(this,0,intent,0); //is wrong

用户身份:

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

这里我们删除了提供新分配的新内容,但是在这里它通过getActivity在Activity(this)中提供了它的分配。