1

我刚刚开始学习 Android,我有一个简单的问题。我有一个单独的类 Team,其中有 3 个变量(字符串名称、int 目标、int 点)。在我的主要活动中,一旦单击按钮,我想增加每个 Team 对象的目标和/或分数。目前我有一个方法:

        public void updatePoints(View v, Team t){
        t.points++;
        }

在我的 xml 文件中,我有:

android:onClick="updatePoints"

这与按钮有关。我可以像上面那样传递 Team 对象吗?如果是这样,怎么办?正如我所说,我才刚刚开始学习 Android,所以任何建议都将不胜感激。

干杯

4

4 回答 4

2

用作 XML 中定义的onClick侦听器的方法的签名必须是

public void myMethod(View v)

否则找不到。

然后,您可以在此方法中做任何您想做的事情,例如调用updatePoints(). 如果要维护 Team 和 View 之间的关系,可以使用setTag()

例如:

button.setTag("com.example.team", myTeam);

然后在 onClick 方法中

public void myMethod(View v) {
   ((Team)v.getTag("com.example.team")).points++;
}
于 2012-08-27T18:57:49.887 回答
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 属性来识别团队......我会使用身份字段来识别单个团队。这样,团队就不会链接/绑定到按钮......更多功能恕我直言

于 2012-08-27T19:11:35.547 回答
1

您可以在类中将 Team 声明为变量:

private Team myTeam;

然后,创建您的方法:

public void updatePoints(View v){
        myTeam.points++;
}

使用类变量。

于 2012-08-27T18:49:28.550 回答
0

您需要为该按钮创建事件侦听器以便在单击时执行某些操作,然后您需要创建该 Team 类的对象,然后您只需在该类中调用 updatePoints 方法。

于 2012-08-27T18:49:52.820 回答