java - DialogFragment 为空,即使提供了 xml
问题描述
我正在尝试使用 DialogFragment 创建一个弹出窗口,但是我的对话框仅包含标题、否定和肯定按钮。
布局选择对话框
<Button
android:text="Aalborg"
android:layout_width="200dp"
android:layout_height="wrap_content" android:id="@+id/firstCityBtn"
app:layout_constraintStart_toStartOf="parent"/>
<Button
android:text="Aarhus"
android:layout_width="200dp"
android:layout_height="wrap_content" android:id="@+id/thirdCityBtn"
app:layout_constraintBottom_toBottomOf="parent"/>
<Button
android:text="København"
android:layout_width="200dp"
android:layout_height="wrap_content" android:id="@+id/secondCityBtn"
android:layout_marginTop="8dp"/>
选择对话框
public class SelectionDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_selection_dialog, null);
builder.setTitle("Vælg by").setNegativeButton("Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
在 MainActivity 中调用的函数
fun showCitySelection() {
var dialog: CitySelectionDialog = CitySelectionDialog()
var ft: FragmentTransaction = supportFragmentManager.beginTransaction()
dialog.show(ft, null)
}
任何想法为什么我没有在对话框中获得我的按钮?
解决方案
您已创建View
但未将其设置为对话框。添加
builder.setView(view);
推荐阅读
- visual-studio - MSBuild CL 任务参数
- html - 水平溢出元素需要溢出-y 可见,为什么?
- javascript - Puppeteer 拦截点击
- hibernate - hibernate MySQL57Dialect 为什么它试图在更新时删除索引?
- mysql - 为什么这个 MySQL 存储过程似乎没有执行它的退出处理程序?
- kotlin - 如何在 Kotlin 中创建回调函数?
- reactjs - 无法添加重定向按钮
- gcc - 为什么 GNAT(通过 GCC 4.7)是构建 GCC 的先决条件?
- julia - 为什么我的向量没有累积迭代?
- java - 裁剪图像和使用 getDownloadURL() 时出错