在运行时从列表中调用函数序列

时间:2019-07-10 22:57:56

标签: android

我正在开发一个应用程序,用于根据用户贫困程度以特定顺序播放短歌曲。因此,要做类似的事情,我需要调用多次播放歌曲但具有不同参数的函数。

那么我该如何在运行时列出功能并执行呢?

1 个答案:

答案 0 :(得分:1)

假设函数遵循一个序列(一个函数成功执行,则中继列表中的下一个函数),我建议创建一个回调接口,其方法返回布尔值。 确保方法在执行时返回布尔值,因此 创建ArrayList,确保列表中的最后一个元素均为false。

public void myFunctions(ArrayList<Boolean> functions, CallBackMethods mm){
for (int i = 0; i<functions.size(); i++){
  mm = new FunctionChecker(functions.get(i));
  while(mm.onSuccess()){
    Log.d(TAG,"Function Ran");
  }
}

}

上面的方法将运行arraylist中指定执行的所有函数。

以下是实现该接口的类;

public class FunctionChecker implements CallBackMethods{

private boolean methodFlag;

public FunctionChecker(boolean methodFlag) {
    this.methodFlag = methodFlag;
}

@Override
public boolean onSuccess() {
    return methodFlag?methodFlag:onFail();
}

@Override
public boolean onFail() {
    return false;
}

}

这是界面;

public interface CallBackMethods {

boolean onSuccess();
boolean onFail();

}

这是一个令人费解的工作,但我希望它会有所帮助