我正在尝试显示AlertDialog
,但在调用show
函数时出现错误。我使用以下代码,从Hello Mapview
代码示例中复制:
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(article.getTitle());
dialog.setMessage(article.getSnippet());
dialog.show();
执行最后一行时应用程序崩溃。我怀疑context
变量,但它没有罪,因为有了它,我可以显示Toast
。
提前感谢你花时间去帮助我。
答案 0 :(得分:1)
第二个@Brigham。确保传递给ItemizedOverylay的上下文是显示MapView的活动。换句话说,使用类似下面的内容,
itemizedOverlay = new HelloItemizedOverlay(drawable, this);
而不是
itemizedOverlay = new HelloItemizedOverlay(drawable, getApplicationContext());
应用程序上下文不能用于AlertDialog,并将导致以下错误,
错误/ AndroidRuntime(8679):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序
答案 1 :(得分:0)
创建新的AlertDialog.Builder对象后,需要调用.create()。
答案 2 :(得分:0)
我想一切都会有效..在下面的代码片段中
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(article.getTitle());
dialog.setMessage(article.getSnippet());
dialog.show();
进行此更改
AlertDialog dialog = new AlertDialog.Builder(context);
dialog.setTitle(article.getTitle());
dialog.setMessage(article.getSnippet());
dialog.show();