我正在从谷歌创建的Udacity course学习Android开发,在练习中,它被要求为两个打篮球的球队创建一个得分记录。该应用程序看起来像:
你可以猜出每个按钮的功能....
为此,他们为每个按钮创建了6个方法(addThreePointToTeamA,addTwoPointToTeamA ...)。但我认为两个方法(addTeamA,addTeamB)就足够了,如果我可以传递一个int参数对应于要添加到每个方法的点数。
所以我想知道是否可以这样做?如果没有,为什么?
提前谢谢你
的修改
这是我想做的事情:
在layout.xml中:
<Button
...
android:text="+3 POINTS"
android:onClick="addThreeTeamA(3)"
/>
然后在MainActivity.java中:
public void addThreeTeamA(int point){
....
}
答案 0 :(得分:3)
技术上可以只实现一个Click Listener,但不能按照您要求的方式实现,因为没有办法将参数传递给Click Click侦听器。相反,您需要为每个按钮定义KeyDown
并使用此方法。
slider1_KeyDown
答案 1 :(得分:1)
答案很简单,你绝对可以做到。
我会说,考虑一下你的设计。
以下是我的建议:
// Setup an interface for common team behaviors
interface Team {
void addPoints(int points);
int getPoints();
}
// implement that interface per Team
class TeamA implements Team {
private int points;
public TeamA(){
this.points = 0;
}
@Override
public void addPoints(int points){
this.points += points;
}
@Override
public int getPoints(){
return this.points;
}
}
为TeamB做同样的事情!
然后在您的Activity或您要添加的调用的任何类中创建一个方法:
public void addPoints(int points, Team team){
team.addPoints(points);
}
祝你好运,快乐的编码!
答案 2 :(得分:0)
他们创造了6种方法,以便您更好地理解。一旦你得到他们想要执行的东西,你就可以增强它。是的,您可以通过为团队A和团队B制作通用方法来增强它。它完全取决于你的逻辑。希望我回答你的问题。