Search code examples
androidoverridingcustomdialog

Overriding Click listener methods in Android


interface Class:

    public interface CustomDialogMethods {

        public void btn_yes();
        public void btn_no();
    }

MainActivity implements from CustomDialogMethods it must override custom's button okey and cancel methods;

    public class MainActivity extends Activity implements CustomDialogMethods {

    @Override
        public void btn_yes() {
            // TODO Auto-generated method stub

        }
    @Override
        public void btn_no() {
            // TODO Auto-generated method stub

        }
}

and my custom Dialog Class, its have okey and cancel button:

    public class CustomWorking extends Activity {

         void CustomDialogWorker(final Dialog dialog,int layout,int b_no,int b_yes) {

                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(layout);

                Button dialogButton = (Button) dialog.findViewById(b_yes);    
                Button dialogButtonno = (Button) dialog.findViewById(b_no);        

                dialogButton.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });
                dialogButtonno.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });          

                dialog.show();           
            }

whats best way to override my dialog okey button and cancel button in MainActivity class with interface methods?


Solution

  • Pass your context to CustomDialogWorker method and trigger btn_yes() btn_no()

    CustomDialogWorker(dialog,layout,b_no,b_yes, this)
    

    OR

    Add this code in your MainActivity

     listener = new CustomDialogMethods() {
            @Override
            public void btn_yes() {
    
            }
    
            @Override
            public void btn_no() {
    
            }
        };
    

    pass the listener

    CustomDialogWorker(dialog,layout,b_no,b_yes, listner);
    

    inside CustomDialogWorker method

    trigger methods

    listner.btn_yes();
    listener.btn_no();