Как получить диалог с дизайном из xml?

1

Я хочу показать диалог с несколькими параметрами, которые я создал в xml. Вот как выглядит код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_main);

    Dialog_Choices(); 
}
public void Dialog_Choices()
{
     Dialog dialog = new Dialog(Main.this);
     dialog.setContentView(R.layout.test_dialog);

     Button_FinishOne=(Button)findViewById(R.id.Ramadan_Button_FinishOne);
    Button_FinishTwo=(Button)findViewById(R.id.Ramadan_Button_FinishTwo);
    Button_FinishThree=(Button)findViewById(R.id.Ramadan_Button_FinishThree);

     dialog.setTitle("اختار عدد مرات");
     dialog.setCancelable(false);


    Button_FinishOne.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(Main.this, "One", Toast.LENGTH_SHORT).show();                
        }
    });

    dialog.show();
}

Проблема в том, что Button_FinishOne имеет значение null, когда он достигает SetOnClickListener.

Если я изменил SetContentView в OnCreate на (R.layout.test_dialog), он будет работать.

R.layout.test_dialog имеет 3 кнопки в relativeView

R.layout.test_main имеет listview.

Как я могу создать xml-макет для основной операции и еще один xml для диалога?

Благодарю.

Теги:
dialog

2 ответа

0
Лучший ответ

Вам нужно использовать dialog.findViewById(R.id.Ramadan_Button_FinishOne), а не просто findViewById

  • 0
    Спасибо за (очень) быстрый ответ.
  • 0
    Можете ли вы пометить это как правильный?
Показать ещё 2 комментария
0

изменение

 Button_FinishOne=(Button)findViewById(R.id.Ramadan_Button_FinishOne);
 Button_FinishTwo=(Button)findViewById(R.id.Ramadan_Button_FinishTwo);
 Button_FinishThree=(Button)findViewById(R.id.Ramadan_Button_FinishThree); 

в

 Button_FinishOne=(Button)(dialog.findViewById(R.id.Ramadan_Button_FinishOne));
 Button_FinishTwo=(Button)(dialog.findViewById(R.id.Ramadan_Button_FinishTwo));
 Button_FinishThree=(Button)(dialog.findViewById(R.id.Ramadan_Button_FinishThree)); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню