getArguments()始终返回null

时间:2014-07-23 22:48:34

标签: android

基本上我在这里有一个奇怪的问题,

在列表项中单击fucntion:

sDialogClickedAtPosition = position;
FragmentManager fm = getActivity().getSupportFragmentManager();
Notes_Taking_Dialog Dialog = new Notes_Taking_Dialog();
Dialog.setTargetFragment(Notes_List_fragment.this, REQUESTCODE_FORDIALOG);

if(!(mDescriptionOfNote.get(sDialogClickedAtPosition).toString().equals
        ("Note #" + sDialogClickedAtPosition)))
{
    Bundle args = new Bundle();
    args.putString(BUNDLE_TO_DIALOG
            , mDescriptionOfNote.get(sDialogClickedAtPosition));
    Dialog.setArguments(args);
}
Dialog.show(fm, CallingNotesDialogTAG);

在if中,当我检查音符是否被修改并保存之前所以我可以传递它并在音符对话框中显示它,它可以正常工作没有崩溃或任何事情

当我这样做时,在对话框类的oncreateDialog中

if(getArguments().getString(Note_taking.BUNDLE_TO_DIALOG).toString() != null)

在if语句中崩溃,天气我用来串或不相同,我做错了什么?

当我删除if语句时,一切正常,但我无法显示之前已保存的音符,因为如果我尝试它会崩溃......

使所有内容清晰,注释位于mDescriptionOfNote.get(position)中.mDescriptionOfNote是一个类型为字符串的数组列表。


// EDIT1:

logcat在以下位置显示空指针异常:

显示java.lang.NullPointerException Notes_Taking_Dialog.onCreateDialog(Notes_Taking_Dialog.java:63)

指向此处的if语句

// EDIT2:

我终于修好了:D

问题出现在onListItemClick的if语句中,我正在保存注释并检查是否创建了新列表并单击了然后我不想将数据传递给对话框,因为数据将是字符串“注意#“+位置,我只想传递之前保存的注释,比如”android“,它允许传递并显示在注释中,所以当我创建一个新列表并单击它时它不会传递任何东西,所以在对话框getArguments()。getString()它将返回null,因为那里什么也没有,

所以我通过传递null或“”来修复它,当第一个if没有开始时。

谢谢大家,对不起浪费你的时间..

0 个答案:

没有答案