Android-在对话框中修改句柄

Android-在对话框中修改句柄,android,android-layout,android-emulator,android-widget,Android,Android Layout,Android Emulator,Android Widget,可能重复: 我早些时候问了一个类似的问题。但是,当我试图修改customDialog中定义的某个元素的句柄时,代码仍然会崩溃 super.onCreate(savedInstanceState); setContentView(R.layout.customdialog); Context mContext = getApplicationContext(); Dialog dialog = new Dialog(mContext); dialog.

可能重复:

我早些时候问了一个类似的问题。但是,当我试图修改customDialog中定义的某个元素的句柄时,代码仍然会崩溃

    super.onCreate(savedInstanceState);
    setContentView(R.layout.customdialog);

    Context mContext = getApplicationContext();
    Dialog dialog = new Dialog(mContext);

    dialog.setContentView(R.layout.customdialog);
    dialog.setTitle("Send Message");
    EditText phoneNumber = (EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);
    phoneNumber.setText("Hello");
如果我只是删除phoneNumber.setText(“…”),代码将停止崩溃,并显示对话框。但是,我确实需要从句柄到各种元素获取内容

知道我做错了什么吗?

试试这个:

创建一个扩展对话框的类,并在其onCreate中执行setContentView和按钮实例化等操作。 例如:

public CustomDialog(Context context) {
  super(context);
}

Button b;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  b = (Button) findViewById(R.id.button_left);
}

public void setBListener(View.OnClickListener bListener) {
  b.setOnClickListener(bListener);
}
在您的活动中:

CustomDialog d = construct your custom dialog
OnClickListener onBClick = construct your onclicklistener
d.setBListener(onBClick);

相反,你应该在上一个问题中提到/更新相同的内容。别担心,肯定会有人提供答案的。在这里问多余的问题是不可取的。对不起,帕雷什-我会确保我不会再这样做了。我是stackoverflow的新手,请不要对我说抱歉,我只是让你了解这个社区。您应该先阅读以下常见问题解答:,不要担心它会发生,因为您还不熟悉。