Android AlertDialog教程给出了一个错误 - 空白应用程序

时间:2012-12-10 23:40:19

标签: java android eclipse

dialogs上的Android文档为AlertDialogs提供了一个很好的小教程。使用代码时,我立即在getActivity()上的Eclipse中收到错误。为什么这不起作用?错误:The method getActivity() is undefined for the type MainActivity对于那些试图通过文档阅读以成为更好的程序员的人来说,这尤其令人困惑,但似乎我并没有将这些点连接起来。感谢。

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    }
}

3 个答案:

答案 0 :(得分:2)

医生说:

getActivity (Context con, int reqCode, Intent intent, int flags)

  

检索将启动新活动的PendingIntent,例如调用   Context.startActivity(意图)。请注意,活动将开始   在现有活动的上下文之外,所以你必须使用   意图中的Intent.FLAG_ACTIVITY_NEW_TASK启动标志。

和关于

[public AlertDialog.Builder (Context context)][2]

Constructor using a context for this builder and the AlertDialog it creates. 

表示 AlertDialog.Builder构造函数需要Context实例而不是PendingIntent

将您的代码更改为:

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

编辑:

作为您提供的链接

http://developer.android.com/guide/topics/ui/dialogs.html

在这个示例作者中谈论我们如何在AlertDialog中显示DialogFragment。我在getActivity()内使用DialogFragment时返回此片段当前关联的活动与。意味着间接getActivity()返回一个Context实例

答案 1 :(得分:1)

您没有针对正确的api构建..方法getActivity()在以前的API中不可用。你总是可以去找

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

或从内部类调用时,请使用

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

答案 2 :(得分:0)

使用

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

代替