Как получить диалог с дизайном из xml? - PullRequest
1 голос
/ 29 июля 2011

Что я хочу сделать, это показать диалог с парой опций, которые я разработал в 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 кнопки в относительном представлении

R.layout.test_main имеет представление списка.

Как получить макет XMLдля основной деятельности, и еще один XML для диалога?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 июля 2011

изменение

 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)); 
0 голосов
/ 29 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...