1

Androidを学び始めたばかりですが、簡単な質問があります。私には別のクラスTeamがあり、その中に3つの変数(文字列名、intゴール、intポイント)があります。私の主な活動では、ボタンがクリックされたら、各チームオブジェクトの目標やポイントを増やしたいと思います。現在、私には方法があります。

        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()。チームとビューの間の関係を維持したい場合は、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プロパティを使用することはありません...個々のチームを識別するためにIDフィールドを使用します。そうすれば、チームはボタンにリンク/結び付けられません...より用途の広いIMHO

于 2012-08-27T19:11:35.547 に答える
1

チームをクラスの変数として宣言できます。

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 に答える