#android #android-layout #android-emulator #android-widget
#Android #android-layout #android-эмулятор #android-виджет
Вопрос:
Я пытаюсь создать пользовательское диалоговое окно, нажав на опцию в меню. Я продолжаю запускать новое действие с намерением, указывающим на customTextMessageDialog.
Я могу получить дескриптор для любого из виджетов, определенных в моем customdialog.xml файл с использованием кода типа «PhoneNumber = (EditText)dialog.findViewById(R.id.customDialogPhoneNumber1);»
Однако я ничего не могу сделать с этим дескриптором. В тот момент, когда я пытаюсь setText () для дескриптора EditText или если я устанавливаю OnClickListener для одной из кнопок, определенных в моем xml, мое приложение вылетает. Есть идеи относительно того, почему это происходит и как я могу это исправить?
Кроме того, почему мне нужно сначала создать экземпляр 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);
}
}
Ответ №1:
В вашем коде вы устанавливаете для Activity
contentView значение customDialog
. Вам нужно настроить макет вашего диалогового окна в соответствии с этим макетом. Читать это.
Сделайте это:
dialog.setContentView(R.layout.customdialog);
Комментарии:
1. Привет, спасибо, что указали на это. Я внес изменения. Однако мой код по-прежнему выходит из строя, когда я пытаюсь изменить дескриптор для различных имеющихся у меня элементов.