Как установить прослушиватель кнопок для пользовательского диалога?

Я сделал основной класс Dialog, на который я отправляю идентификатор макета, и теперь отображает макет как диалоговое окно, когда я отправляю макет из вызывающего класса, он выводит диалоговое окно, но содержимое диалогового окна, т.е. кнопки недоступны, я не могу установить щелчок Слушатель для них … помогите мне, как это сделать ниже, это мой код …

ЗВОНОК КЛАССА: –

CustomDialog obj=new CustomDialog(MailSenderActivity.this , R.layout.mydialog); obj.show(); 

ГЛАВНЫЙ КЛАСС

 import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class CustomDialog extends Dialog implements View.OnClickListener { Dialog dialog; int id; public CustomDialog(MailSenderActivity mailsender, int id) { super(mailsender); this.id = id; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(id); Button signInbutton=(Button)findViewById(R.id.signInButton); Button closebutton=(Button)findViewById(R.id.closeButton); } public void closebutton(View v) { Toast.makeText(getContext(), "You clicked a button!", Toast.LENGTH_LONG).show(); dismiss(); } @Override public void onClick(View v) { // TODO Auto-generated method stub } } 

Id: –

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" android:padding="30dip" android:orientation="horizontal" android:weightSum="1" android:background="@drawable/gmail"> <LinearLayout android:layout_width="296dp" android:orientation="vertical" android:layout_gravity="center" android:layout_weight="1.51" android:layout_height="497dp"> <TextView android:text="My Dialog" android:textSize="24.5sp" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_marginBottom="25dip"></TextView> <TextView android:text="Enter Gmail Id" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> <EditText android:id="@+id/name" android:layout_width="358dp" android:singleLine="true" android:layout_height="wrap_content"> </EditText> <TextView android:text="Enter Gmail Password" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> <EditText android:id="@+id/name" android:layout_width="314dp" android:singleLine="true" android:layout_height="wrap_content" android:password="false" android:inputType="textPassword"></EditText> <Button android:text="Sign In" android:layout_width="67dp" android:id="@+id/signInButton" android:layout_height="wrap_content" android:clickable="true" android:onClick="signIn"></Button> <Button android:text="close" android:layout_width="67dp" android:id="@+id/closeButton" android:layout_height="wrap_content" android:clickable="true" android:onClick="closeButton"></Button> </LinearLayout> </LinearLayout> 

Там вы идете:

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(id); Button signInbutton=(Button)findViewById(R.id.signInButton); signInButton.setOnClickListener(this); Button closebutton=(Button)findViewById(R.id.closeButton); closeButton.setOnClickListener(this); } @Override public void onClick(View v) { if(R.id.closeButton == v.getId()) { closeButton(v); } else { // do the same for signInButton } } 

Предложите вам заранее изучить основное.

  dialog_bring_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { final Dialog dialog = new Dialog(MyActivity.this); dialog.setContentView(R.layout.MyCustomDialogxmlfile); dialog.show(); /* My Cancel Button , and its listener */ my_cancel_btn=(Button)dialog.findViewById(R.id.datesetbtn); my_cancel_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); } }); 

Я обнаружил, что код более ясен, чтобы отделить мои обработчики кликов. Добавьте это в метод onCreate:

 signInbutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do stuff for signInButtonClick } }); // same for other button 
 dialog = new Dialog(this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("Custom Dialog"); Button dialog_btn = (Button) dialog.findViewById(R.id.dialog_button); dialog_btn.setOnClickListener(new View.OnClickListener() { // Perform button logic } 
  submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomDialog dialog1 = new CustomDialog(Classname.this); dialog1.setContentView(R.layout.submitdialog); dialog1.setTitle(" SUBMIT :"); TextView text = (TextView) dialog1.findViewById(R.id.message); text.setText(" Your Answer is correct "); } } 
  AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.warning); builder.setTitle("Warning"); final LinearLayout backAlarmDialogLayout = (LinearLayout) getLayoutInflater() .inflate(R.layout.custumedialog_layou, null); builder.setView(backAlarmDialogLayout); builder.setCancelable(true); backAlarmDialog = builder.create(); 

Установите эти коды для инициализации вашего костюмированного диалога в onCreate, как это, и если вы хотите добавить слушателя к своей кнопке, вы можете написать другой метод, например

  public void onClickCancel(View view){ backAlarmDialog.dismiss(); } 

То вы используете

 android:onClick="onClickCancel" 

В кнопке в файле XML.files вы столкнулись с диалогом, я попробовал другие способы, но они просто не сработали, и я не знаю, почему это. Может, кто-то решит мою проблему. || = =

Intereting Posts
Как установить ширину экрана в диалоговом окне на ширину экрана? Можно ли отправлять push-уведомления на Android без создания какого-либо приложения? Где находится файл при использовании getCacheDir Скрытие индикатора «Загрузка …» при реализации ListFragment Ошибка «Не удалось загрузить библиотеку SSL» на Android с помощью TidHTTP Получение ArrayIndex из Bounds Исключение при добавлении новых элементов в список при прокрутке Исключение из списка репликации Android RecyclerView LayoutManager Связь между фрагментами в ViewPager Не удалось щелкнуть панель действий на роботизме Отправлять данные через Wi-Fi (без Интернета), когда мобильные данные по Может использовать телефон android в качестве биометрического устройства для печати пальцев Java.lang.RuntimeException не может создать экземпляр службы: java.lang.NullPointerException Как передать пользовательский объект в Bundle? Как обновить пользовательский список с помощью baseadapter в android Android записывать на диск ненадежный – файл file.length! = Expected.length