List Dialog Fragment - 找不到资源异常

时间:2014-05-30 20:12:25

标签: android android-layout android-widget

我正在尝试使用"哪个"变量,但我得到了这个例外。 这是我的片段对话框..

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

如果有人知道什么是错的......我无法理解错误的原因..请帮助......

谢谢, 弗拉基米尔

3 个答案:

答案 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来编写消息并且它有效,不再有例外。我猜有人知道为什么会这样......