Show dialog alert from a non-activity class in android

后端 未结 7 2007
慢半拍i
慢半拍i 2020-12-06 02:37

I want to show an Alert Dialog via AlertDialogManager class to a non-activity class DeviceAdminReceiverSample\'s method onDisabl

7条回答
  •  囚心锁ツ
    2020-12-06 02:58

    You can define a public Context var in the MainActivity with initial value (this); As show here:

    public class MainActivity< alertdail > extends AppCompatActivity {
    
        ////////////////////////////////////////////////////////////
        //Public var refers to Main Activity:
        Context mainActivity = this;
        ////////////////////////////////////////////////////////////
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate ( savedInstanceState );
            setContentView ( R.layout.activity_main );
            AlertDialogManager alert  =new AlertDialogManager ();
    alert.showAlertDialog ( this,"Title","Message",true );
    
    
         }
    
    
        public class AlertDialogManager {
    
            public void showAlertDialog(Context context, String title, String message,
                                        Boolean status) {
                final AlertDialog alertDialog = new AlertDialog.Builder ( mainActivity ).create ( );
                alertDialog.setTitle ( title );
                alertDialog.setMessage ( message );
    
                if (status != null)
                    alertDialog.setButton ( "OK", new DialogInterface.OnClickListener ( ) {
                        public void onClick(DialogInterface dialog, int which) {
                            alertDialog.dismiss ( );
                        }
                    } );
                alertDialog.show ( );
            }
    
            public void showAlertDialog(Context c) {
            }
        }
    
    
        public class DeviceAdminReceiverSample extends DeviceAdminReceiver {
            static final String TAG = "DeviceAdminReceiver";
            AlertDialogManager alert = new AlertDialogManager ( );
    
            /**
             * Called when this application is no longer the device administrator.
             */
            @Override
            public void onDisabled(Context context, Intent intent) {
                super.onDisabled ( context, intent );
                Toast.makeText ( context, R.string.device_admin_disabled,
                        Toast.LENGTH_LONG ).show ( );
                // intent.putExtra("dialogMessage", "Device admin has been disabled");
                // intent.setClass(context, DialogActivity.class);
                // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                // context.startActivity(intent);
                alert.showAlertDialog ( context, "Alert",
                        "Device admin has been disabled", true );
            }
        }
    }
    

提交回复
热议问题