我刚刚开始学习Android,我有一个简单的问题。我有一个单独的类Team,其中有3个变量(String name,int goals,int points)。在我的主要活动中,我希望在单击按钮后增加每个Team对象的目标和/或点数。目前我有一个方法:
public void updatePoints(View v, Team t){
t.points++;
}
在我的xml文件中我有:
android:onClick="updatePoints"
与Button有关。我可以像上面一样传递Team对象吗?如果是这样,怎么办呢? 正如我所说,我只是开始学习Android所以任何建议都会受到赞赏。
干杯
答案 0 :(得分:2)
用于在XML中定义的 onClick 侦听器的方法的签名必须
public void myMethod(View v)
否则将无法找到。
然后,您可以在此方法中执行任何操作,例如调用updatePoints()
。
如果您想维护团队和视图之间的关系,可以使用setTag()。
例如:
button.setTag("com.example.team", myTeam);
然后在onClick方法
public void myMethod(View v) {
((Team)v.getTag("com.example.team")).points++;
}
答案 1 :(得分:1)
您可以将Team声明为您班级中的变量:
private Team myTeam;
然后,创建您的方法:
public void updatePoints(View v){
myTeam.points++;
}
使用类变量。
答案 2 :(得分:1)
如果你有......
android:onClick="updatePoints" // in XML file
然后在你的java文件中你需要定义...
public void updatePoints(View v){
// This is where you update each team
// I think v.getId() retrieves the id of the button (or view) that was clicked
}
我假设你的活动中有......
团队[]; //一系列团队(不止一个),所以你需要做一些事情来确定你想要更新的团队......所以我要改变你对团队的定义
public class Team {
public int identity; // This is the new field
public String name;
public int goals;
public int points;
}
虽然你可以,我不会使用tag属性来识别团队......我会使用身份字段来识别各个团队。这样一个团队没有链接/绑定一个按钮...更多功能恕我直言
答案 3 :(得分:0)
您需要为该按钮创建事件侦听器,以便在单击时执行某些操作,然后您需要创建该Team类的对象,然后您只需在该类中调用updatePoints方法。