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());
}
}
答案 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);
代替