我想传递一个方法 (SaveClound) 作为参数 (AlertDialog Parameter) 这样我就可以通过这个参数使用不同的方法 (in actionButtons Method).
public void actionButtons(){
buttonVoltar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alertDialog(saveClound());
// see? I want to call the a method through this parameter
}
});
}
public void alertDialog(Method methodName) {
AlertDialog.Builder builderaction = new AlertDialog.Builder(this);
builderaction.setTitle("Atenção!");
builderaction.setMessage("Você tem certeza que deseja sair?");
builderaction.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// i want to call here the paramater i'm passing on this method (methodName)
// so i can call any methods i want right here
}
});
builderaction.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builderaction.create();
alert.setIcon(R.drawable.ic_stop);
alert.show();
}
public void saveClound(){
Toast.makeText(getApplicationContext(), "ABC", Toast.LENGTH_SHORT).show();
}
最佳答案
例如,您可以通过将可运行对象传递给该方法来做到这一点
public void actionButtons(){
buttonVoltar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Runnable runnable = new Runnable() {
@Override
public void run() {
saveClound();
}
};
alertDialog(runnable);
}
});
}
public void alertDialog(Runnable runnable) {
AlertDialog.Builder builderaction = new AlertDialog.Builder(this);
builderaction.setTitle("Atenção!");
builderaction.setMessage("Você tem certeza que deseja sair?");
builderaction.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// i want to call here the paramater i'm passing on this method (methodName)
// so i can call any methods i want right here
new Handler().post(runnable);
}
});
builderaction.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builderaction.create();
alert.setIcon(R.drawable.ic_stop);
alert.show();
}
public void saveClound(){
Toast.makeText(getActivity(), "ABC", Toast.LENGTH_SHORT).show();
}
关于android - 如何在 Android 中将方法作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30658488/