使用setView和builder吗?

时间:2017-02-22 08:18:11

标签: android android-dialog

我正试着在Android上使用Dialogs。我最近遇到了这个使用Builder类的例子。

代码是

AlertDialog.Builder builder= new AlertDialog.Builder(getActivity());
View dialogView = inflater.inflate(R.layout.dialog_show_note, null);

接下来它显示了这行代码

builder.setView(dialogView).setMessage("Add a new note");

现在,当我输入此行时,弹出的错误消息是“无法解析setView”

我不确定我犯了什么错误,或者书中有错误。 Builder类甚至包含 setView方法

错误的完整代码示例如下: -

public class DialogNewNote extends DialogFragment { 
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getActivity().getLayoutInflater(); 
        View dialogView = inflater.inflate(R.layout.dialog_new_note, null); 

        builder.setView(dialogView).setMessage("Add a new note"); //error

    } 
}

1 个答案:

答案 0 :(得分:0)

我试过这个,我认为你应该把你的代码放在onCreate而不是onCreateDilaog.On另一方面,如果它已经扩展到对话框类的相同对话框,那么你应该在onCreateView方法中提供布局充气器,如正常片段。

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        View dialogView = getActivity().getLayoutInflater().inflate(R.layout.my_layout, null);
        builder.setView(dialogView).setMessage("kqhwdi");
    }

用于实现单独的警告对话框我认为你应该在onCreate()或onViewCreated()中创建它。