java - 如何让您的应用显示对话框(AndroidStudio)?
问题描述
我的活动在启动时应该显示一个对话框。
这是我的 java 类“PrivacyDialog”:
public class PrivacyDialog extends AppCompatDialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Information")
.setMessage("test")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
return builder.create();
}
}
这是在我的活动中打开对话框的功能。
public void openDialog () {
PrivacyDialog privacyDialog = new PrivacyDialog();
privacyDialog.show(getSupportFragmentManager(),"PrivacyDialog");
}
我的问题:
应用程序每次执行 openDialog 函数时都会崩溃。
解决方案
您在自定义对话框中创建警报对话框,这是错误的。您应该在充气机内提供自定义布局。
class MyCustomDialogFragment : DialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Do all the stuff to initialize your custom view
return inflater.inflate(R.layout.dialog_fragment, container, false)
}
}
解雇
dialogFragment.dismiss();
PS:由于 DialogFragment 是一个实际的片段,您只需要创建一个片段事务并调用 show 方法
val dialog: MyCustomDialogFragment = MyCustomDialogFragment()
val fm: FragmentManager = supportFragmentManager
dialog.show(fm, "fragment_dialog")
xml布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
推荐阅读
- core-location - 隐私 - 位置默认精度降低 (NSLocationDefaultAccuracyReduced) 不尊重
- r - 使用替代函数重现 ggplot2 的 facet_wrap 图
- zsh - 为什么 direnv 无法读取我的 zsh/fish/elvish/tcsh 脚本?
- python - tkinter,如何从 2D 条目小部件中获取价值?
- c# - 制作缓冲区列表的最有效方法?
- html - 如何识别元素是否有空格 Selenium VBA
- spring - java.lang.IllegalStateException:找不到接口 java.util.List 的主要或默认构造函数
- django - 带有令牌提交的自定义用户字段 django rest framework simplejwt
- oracle - Oracle (Amazon RDS) 会话挂起
- c# - 将我的 SQL Server 连接到 Winforms 应用程序时出错