【问题标题】:DialogFragment is empty on usage (Android Studio)DialogFragment 在使用时为空(Android Studio)
【发布时间】:2019-06-10 03:49:25
【问题描述】:

我将一堆代码移到我的程序中成为DialogFragment,突然对话框是空的。

尝试输入其他数据,如 Textviews 等,但它们也没有显示,所以我认为问题是我如何将布局文件与 DialogFragment 代码耦合。

DialogFragment 类:

public class NewAccDialog extends DialogFragment {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        View mView = getActivity().getLayoutInflater().inflate(R.layout.new_acc_dialog, null);
        builder.setTitle(getActivity().getString(R.string.overview_newacctitle_txt));

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        final Spinner accTypeSpinner = mView.findViewById(R.id.new_acc_spinner);
        accTypeSpinner.setAdapter(adapter);

        // onclicks removed

        return builder.create();
    }
}

我如何在活动中使用它:

public void createNewAcc(View v) {
        Bundle args = new Bundle();
        args.putLong("customerId", customerId);
        args.putParcelable("customerObject", customer);
        DialogFragment newAccDialog = new NewAccDialog();
        newAccDialog.setArguments(args);
        newAccDialog.show(getSupportFragmentManager(), "new_acc_dialog");

    }

没有显示错误消息,但这是我的对话框的样子:

【问题讨论】:

  • 您已创建 mView 但从未使用过它。您应该将其设置为 ContentView 到 dialog 。使用builder.setView(mView)./
  • 难以置信,谢谢我的朋友

标签: android dialogfragment


【解决方案1】:

请将您的mView 设置为您的构建器的内容:

....
....
builder.setView(mView)
return builder.create();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2013-03-23
    • 2014-12-25
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多