如何将一个函数作为参数传递给android中的另一个函数?

nex*_*one 8 java parameters methods android

那么如何将函数作为参数传递给另一个函数,例如我想传递这个函数:

public void testFunkcija(){
    Sesija.forceNalog(reg.getText().toString(), num);
}
Run Code Online (Sandbox Code Playgroud)

在这:

    public static void dialogUpozorenjaTest(String poruka, Context context, int ikona, final Method func){
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            context);
        alertDialogBuilder.setTitle("Stanje...");
        alertDialogBuilder
            .setMessage(poruka)
            .setIcon(ikona)
            .setCancelable(true)                        
            .setPositiveButton("OK",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    //here
                }
              });

        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
}
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 17

您可以使用Runnable来包装您的方法:

Runnable r = new Runnable() {
    public void run() {
        Sesija.forceNalog(reg.getText().toString(), num);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将其传递给您的方法并r.run();在您需要的地方调用:

public static void dialogUpozorenjaTest(..., final Runnable func){
    //.....
        .setPositiveButton("OK",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int id) {
                func.run();
            }
          });
}
Run Code Online (Sandbox Code Playgroud)

  • @nmtuan使用Callable? (2认同)