我在对话方面遇到了麻烦,所以我已多次重读Android文档了,我仍然不确定以下事情,如果有人能回答我的问题,我真的很感激... 在我问我的问题之前,我的代码显示...
CustomDialog(Android dev。网站的直接拷贝)
public class FireMissilesDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.dialog_createlocation, null))
.setTitle(R.string.dialog_createlocationtitle)
// Add action buttons
.setPositiveButton(R.string.create, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
FireMissilesDialogFragment.this.getDialog().cancel();
}
});
return builder.create();
}
}`
这是对话框的布局(dialog_createlocation.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<EditText
android:id="@+id/EditTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="@string/name"
android:maxLines="1"/>
<EditText
android:id="@+id/EditTextAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif"
android:hint="@string/address"
android:maxLines="2"/>
问题:/ N
2.我是否有必要在自己的类中创建这个对话框? - 我可以在我的主要活动中创建它( - 不创建内部类)?/ n
3.我对为什么要创建自定义对话框感到困惑,它必须扩展一个片段 - 为什么不只是一个活动?/ n
4.我在我的主要活动中创建了上述对话框的一个实例(这不是一个片段),我遇到了一些问题:
public void showNoticeDialog() {
// Create an instance of the dialog fragment and show it
DialogFragment dialog = new FireMissilesDialogFragment();
dialog.show(getSupportFragmentManager(), "NoticeDialogFragment");
}
谢谢!
答案 0 :(得分:1)
- 在我的主要活动中,我想从两个EditText中获取文本 对话框。虽然我已经看到了一些关于这个的问题,但我是如此 过度紧张,似乎无法理解答案。
醇>
EditText editTextName = dialog.getDialog().findViewById(R.id.EditTextName);
String name = editTextName.getText().toString();
- 我是否有必要在自己的类中创建这个对话框? - 我可以在我的主要活动中创建它( - 不创建内部 类)?
醇>
是,你可以。 AlertDialog只为您提供对话框的现有结构。但要使自己只使用Dialog
类。
3.我对为什么要创建自定义对话框感到困惑,它必须扩展一个片段 - 为什么不只是一个活动?
没有必要仅使用Fragment for Dialog。按照第二个答案。
4.我在我的主要活动中创建了上述对话框的一个实例(这不是一个片段),我遇到了一些问题:
发布堆栈跟踪或错误日志。