Java DialogFragment中的EditText始终返回空字符串

Java DialogFragment中的EditText始终返回空字符串,java,android,android-edittext,android-dialogfragment,Java,Android,Android Edittext,Android Dialogfragment,我已经在我的对话框中实现了表单,当单击肯定按钮时,我将为ma数据库创建新对象。我已经为EditText创建了全局变量,但仍然不起作用。在我想从他们那里得到文本值的地方,我总是得到空字符串 以下是代码: EditText名称,desc @Override @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builde

我已经在我的对话框中实现了表单,当单击肯定按钮时,我将为ma数据库创建新对象。我已经为EditText创建了全局变量,但仍然不起作用。在我想从他们那里得到文本值的地方,我总是得到空字符串

以下是代码:

EditText名称,desc

@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();
    view = inflater.inflate(R.layout.new_dialog, null);

    name = (EditText) view.findViewById(R.id.workout_name);
    desc = (EditText) view.findViewById(R.id.workout_description);


    builder.setView(inflater.inflate(R.layout.new_dialog, null)).setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            MyDbHelper helper = new MyDbHelper (getActivity());
            MyObj w = new MyObj ();

            w.setName(name.getText().toString(););
            w.setDescription(desc.getText().toString());
            w.setLevel(1);

            long id =  helper.createWorkout(w);
            Toast.makeText(getActivity(), id+"", Toast.LENGTH_LONG).show();

            callback.onPositiveButtonClick();
        }
    }).setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            callback.onNegativeButtonClick();

        }
    });

    return builder.create();
}

有什么想法吗?

在下面的代码中,您正在膨胀
新建对话框
布局,您的姓名和描述文本属于此布局

视图=充气机。充气(R.layout.new_对话框,空)

但是,当您设置对话框布局时,您正在设置
new\u workout\u dialog
。您的姓名和描述不属于此布局

builder.setView(inflater.inflate(R.layout.new_workout_dialog, null))
此外,即使在设置builders视图时使用了
new_对话框
,name和desc仍然是不相关的。因为您正在
setView
方法中完全创建一个新视图

按如下方式使用视图变量:

builder.setView(view, null))

我偶然发现了同样的问题。您可以使用onClick提供的getDialog()在对话框中获取视图

((EditText) getDialog().findViewById(R.id.your_editText_ID)).getText().toString()

不,我没有任何例外对不起,没有问题。。。在应用程序中,我有相同的名字。。。这是我在stack网站上编辑的。请阅读我最后的回答。即使是打字错误,您的代码仍然是错误的。您正在setView方法中创建一个新视图。使用您之前创建的视图变量。哦,是的!我错过了这个对不起:)它的工作)谢谢你
((EditText) getDialog().findViewById(R.id.your_editText_ID)).getText().toString()