나는 목록보기를 가지고 있으며 항목을 클릭하면 AlertDialog에 Radiobuttons가 표시됩니다. 그러나 alertDialog를 호출하면 앱이 다운됩니다. Logcat은 NullPointerException을 발생시킵니다. 내가 도대체 뭘 잘못하고있는 겁니까?Android - Nullpointer AlertDialog를 표시 할 때 listitem을 클릭 할 때 예외가 발생했습니다.
private void registerClickCallBack() {
ListView list = (ListView) findViewById(R.id.settingsList);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
if (position == 0) {
final AlertDialog levelDialog
final CharSequence[] items = { " Easy ", " Medium ",
" Hard ", " Very Hard " };
AlertDialog.Builder builder = new AlertDialog.Builder(
MyActivity.this);
builder.setTitle("Select The Difficulty Level");
builder.setSingleChoiceItems(items, -1,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int item) {
Intent i = new Intent(
getApplictionContext(),
MyActivity.class);
switch (item) {
case 0:
String msg = "Alert A";
Toast.makeText(
MyActivity.this,
msg, Toast.LENGTH_LONG).show();
break;
case 1:
String msga = "Alert B";
Toast.makeText(
MyActivity.this,
msga, Toast.LENGTH_LONG).show();
break;
case 2:
String msgz = "Alert C";
Toast.makeText(
MyActivity.this,
msgz, Toast.LENGTH_LONG).show();
break;
case 3:
String msge = "Alert E";
Toast.makeText(
MyActivity.this,
msge, Toast.LENGTH_LONG).show();
break;
}
}
});
levelDialog.dismiss();
levelDialog = builder.create();
levelDialog.show();
}
else if (position == 1) {
String msg = "1";
Toast.makeText(MyActivity.this, msg,
Toast.LENGTH_LONG).show();
} else if (position == 2) {
String msg = "2";
Toast.makeText(MyActivity.this, msg,
Toast.LENGTH_LONG).show();
}
else if (position == 3) {
String msg = "3";
Toast.makeText(MyActivity.this, msg,
Toast.LENGTH_LONG).show();
}
}
});
}
MyActivity.this
에 변경 될 수 있습니다'기각()''.show()'방법 후 즉시했다. – user370305@ user370305 그 이유는 내가 "왜 당신이'dismiss()'를 호출하는지 확신 할 수 없다는 것입니다. OP가 현재 받고있는 'NPE'를 고쳐야 만하지만 거기에 가지고있는 것이 이해가되지 않습니다. – codeMagic
당신이 말한 것처럼 그것을 바꿨습니다, 지금은 부서지는 것이 아니라 눌렀을 때 아무 것도하지 않습니다. 이 튜토리얼을 따라이 작업을 수행했습니다. http://learnandroideasily.blogspot.be/2013/01/adding-radio-buttons-in-dialog.html 그들은 'levelDialog.dismiss(); } }); levelDialog = builder.create(); levelDialog.show(); ' – mXX