有关自定义对话的问题

时间:2015-04-21 21:13:20

标签: java android dialog

我在对话方面遇到了麻烦,所以我已多次重读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

  1. 在我的主要活动中,我想从对话框中的两个EditText中获取文本。虽然我已经看到了一些关于这个的SO问题,但我如此过度,似乎无法理解答案./n
  2. 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");
    

    }

    谢谢!

1 个答案:

答案 0 :(得分:1)

  
      
  1. 在我的主要活动中,我想从两个EditText中获取文本   对话框。虽然我已经看到了一些关于这个的问题,但我是如此   过度紧张,似乎无法理解答案。
  2.   
EditText editTextName = dialog.getDialog().findViewById(R.id.EditTextName);
String name = editTextName.getText().toString();
  
      
  1. 我是否有必要在自己的类中创建这个对话框? - 我可以在我的主要活动中创建它( - 不创建内部   类)?
  2.   

,你可以。 AlertDialog只为您提供对话框的现有结构。但要使自己只使用Dialog类。

  

3.我对为什么要创建自定义对话框感到困惑,它必须扩展一个片段 - 为什么不只是一个活动?

没有必要仅使用Fragment for Dialog。按照第二个答案。

  

4.我在我的主要活动中创建了上述对话框的一个实例(这不是一个片段),我遇到了一些问题:

发布堆栈跟踪或错误日志。