Я хочу показать диалог с несколькими параметрами, которые я создал в 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.findViewById(R.id.Ramadan_Button_FinishOne), а не просто findViewById
изменение
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));