【发布时间】:2011-12-25 17:40:31
【问题描述】:
我试图在单击菜单中的一个选项时创建一个自定义对话框。我继续使用指向 customTextMessageDialog 的 Intent 开始一个新活动。
我能够使用“phoneNumber = (EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);”之类的代码获取我的 customdialog.xml 文件中定义的任何小部件的句柄
但是,我对此句柄无能为力。当我尝试为 EditText 句柄设置 setText() 或者为我的 xml 中定义的按钮之一设置 onClickListener 时,我的应用程序崩溃了。关于为什么会发生这种情况以及如何解决这个问题的任何想法?
另外,为什么我需要先创建一个 Dialog 实例,然后再在该实例上调用 findViewById?
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);
}
}
【问题讨论】:
标签: android android-layout android-emulator android-widget