我正在尝试使用"哪个"变量,但我得到了这个例外。 这是我的片段对话框..
public class ItemSettingsDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.title_settings).setItems(R.array.item_settings_settings, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplication(), which, Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
}
这是阵列..
<string-array name="item_settings_settings">
<item>One</item>
<item>Two</item>
<item>Three</item>
<item>Four</item>
</string-array>
DialogFragment newFragment = new ItemSettingsDialogFragment();
newFragment.show(getSupportFragmentManager(), "items_settings");
我收到此错误..
05-30 16:00:23.601: E/AndroidRuntime(2060): android.content.res.Resources$NotFoundException: String resource ID #0x0
如果有人知道什么是错的......我无法理解错误的原因..请帮助......
谢谢, 弗拉基米尔
答案 0 :(得分:1)
调用dialog.dismiss();在展示吐司之前
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Toast.makeText(getApplication(), which, Toast.LENGTH_SHORT).show();
}
希望它能奏效。
答案 1 :(得分:0)
尝试使用此代码。添加代码后清理项目以确保一切正常。
String[] items = getResources().getStringArray(R.array.item_settings_settings);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.title_settings).setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplication(), which, Toast.LENGTH_SHORT).show();
}
});
答案 2 :(得分:0)
我删除了toast消息,并使用Log来编写消息并且它有效,不再有例外。我猜有人知道为什么会这样......