我对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()
方法定义在哪里?
我找不到那种方法。
答案 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
参数。可以Context
,Activity
等方式访问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.BuilderAlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
// 2.将各种setter方法链接在一起以设置对话框特征
builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);
// 3.从create()
获取AlertDialogAlertDialog 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)中提供了它的分配。