我不知道这些叫什么,但我想改变这样的东西:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
代码没有像这样“嵌套”在参数中。换句话说,我的想法是:
fab.setOnClickListener(something goes here);
//...and then within its own method somewhere,
public void onClickMethodForOnClickListenerOrSomething(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
我不知道我是否清楚地表达了自己的意思,但我基本上想将监听器作为参数去掉,并将其放入一个单独的函数中。我发现它使事情变得更清晰,因为有这么多监听器,我的 OnCreate 方法中积累了很多代码。
最佳答案
由于您需要重写 onClick 方法,因此您无法重命名它,但您可以执行以下操作:
public void onClickMethodForOnClickListenerOrSomething(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
public void yourOtherMethod() {
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onClickMethodForOnClickListenerOrSomething(view);
}
});
}
关于java - 如何将内部函数变成自己的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482480/