LogCat告诉我我的应用程序无法显示窗口,因为#34;令牌null不适用于应用程序"。这是它遇到问题的代码:
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setMessage("Er du sikker?\n" + taskList.get(position) +"\nvil starte med det samme hvis du trykker 'Ja'");
.setPositiveButton("Ja", dialogClickListener);
.setNegativeButton("Nej", dialogClickListener);
.show();
忽略丹麦语,仅供我们的用户使用。它在.show()
上开始表现并抛出致命一击。我在整个StackOverflow上看到了同样的问题,并发现它在getApplicationContext()中可能是一个问题,但我还是无法弄清楚如何获得使用上下文。
如果您需要,我会留下一些应该在这里使用的代码。
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { //give our listView an onItemClickListener
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { //when you click on an item
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { //it should open a dialog but doesn't
@Override
public void onClick(DialogInterface dialog, int which) { //if you click
switch (which){ //"ja"
case DialogInterface.BUTTON_POSITIVE:
Intent i = new Intent(getApplicationContext(), PlayScreen.class); //start a new intent to open PlayScreen
i.putExtra("task", taskList.get(position)); //with the task out of the ArrayList that was clicked
startActivity(i);
break;
case DialogInterface.BUTTON_NEGATIVE: //nothing
break;
}
}
};
基本上我认为问题在于我不知道如何为builder
提供所需的上下文。这可能与我不熟悉Android开发有关。
答案 0 :(得分:1)
将getApplicationContext()
替换为this
,假设this
是Activity
。 Activity
继承自Context
,您需要使用Activity
来展示Dialog
。
答案 1 :(得分:0)
我是个白痴。
基本上我忘了我在ListView的上下文中使用它,这意味着我试图将它与一个活动一起使用。我从列表视图中获取了上下文..
lv.getContext()
很抱歉浪费你的时间,如果我只花了5分钟来确定我在代码中的位置......