Android-在自定义对话框中获取组件的句柄

Android-在自定义对话框中获取组件的句柄,android,android-layout,android-emulator,android-widget,Android,Android Layout,Android Emulator,Android Widget,我试图在单击菜单中的一个选项时创建一个自定义对话框。我接着开始一个新的活动,目的是指向customTextMessageDialog 我能够使用类似“phoneNumber=(EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);”的代码获取customdialog.xml文件中定义的任何小部件的句柄 但是,我无法使用此句柄执行任何操作。当我尝试为EditText句柄设置Text()或为xml中定义的按钮之一设置onClickLi

我试图在单击菜单中的一个选项时创建一个自定义对话框。我接着开始一个新的活动,目的是指向customTextMessageDialog

能够使用类似“phoneNumber=(EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);”的代码获取customdialog.xml文件中定义的任何小部件的句柄

但是,我无法使用此句柄执行任何操作。当我尝试为EditText句柄设置Text()或为xml中定义的按钮之一设置onClickListener时,我的应用程序就会崩溃。你知道为什么会发生这种情况,以及我如何解决这个问题吗

另外,为什么我需要先创建Dialog的实例,然后再对该实例调用findviewbyd

public class customTextMessageDialog extends Activity
{
    EditText phoneNumber;
    EditText message;
    Button cancelButton;
    Button sendButton;

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.customdialog);
    Dialog dialog = new Dialog(this);
    phoneNumber = (EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);
    //phoneNumber.setTextColor(R.color.gray);
    //phoneNumber.setText("ex: 4127214544");
    message = (EditText)dialog.findViewById(R.id.customDialogMessage1);
    cancelButton = (Button)dialog.findViewById(R.id.customDialogCancelButton1);
    cancelButton.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v) {
            finish();

        }
    });
    sendButton = (Button)dialog.findViewById(R.id.customDialogPhoneNumber1);
}
}

在代码中,您正在将
活动
的内容视图设置为
自定义对话框
。您需要将对话框的布局设置为该布局。阅读

这样做:

dialog.setContentView(R.layout.customdialog);

在代码中,您正在将
活动
的内容视图设置为
自定义对话框
。您需要将对话框的布局设置为该布局。阅读

这样做:

dialog.setContentView(R.layout.customdialog);

嗨,谢谢你指出这一点。我做了改变。然而,当我试图修改我拥有的各种元素的句柄时,我的代码仍然崩溃。嗨,谢谢你指出这一点。我做了改变。然而,当我试图修改我拥有的各种元素的句柄时,我的代码仍然崩溃。