2 つのアクティビティがActivityAありActivityB、それぞれに 3 つのボタンがあります。ActivityA接続されている 1 つのデバイスと、接続されている別のデバイスに表示ActivityBされます。ボタンはそれぞれ 2 つの状態のいずれかになりますが、状態は両方のデバイスに反映される必要があります。静的メソッドを持つ util クラスを使用して、両方のアクティビティからボタンの押下を受け取り、それをサービスに送信し、サービスからのコールバック時に両方のアクティビティのボタンの状態を更新しています。
現在、各ボタンは対応するアクティビティの関数を xml から呼び出します。たとえば、は次Button1のonClickようになります。
android:onClick="button1Clicked"
その関数は (対応するアクティビティから) UtilClass の関数を呼び出し、次のようになります。
public void button1Clicked(View view) {
UtilClass.button1Cliked();
}
を設定しenumたので、サービスからのコールバック時に( と の両方で)UtilClassどのボタンを更新するかがわかります。次のようになります。ActivityAActivityB
public class UtilClass {
public static Button buttonPressed = WfdOperationButton.NONE;
public enum Button {
BUTTON1, BUTTON2, BUTTON3
}
public static void button1Cliked() {
buttonPressed = Button.BUTTON1;
//call asynctask to tell the service button1 was pushed by passing
//buttonPressed
}
public static void button2Cliked() {
buttonPressed = Button.BUTTON2;
//call asynctask to tell the service button2 was pushed by passing
//buttonPressed
}
...
私の質問は、 で同じものを使用し、 で 3 つの機能を統合するにはどうenumすれUtilClassばActivityAよいですActivityBか? 私が試みた変更は以下のとおりです。buttonXClicked()UtilClassUtilClass
public static void buttonCliked(Button inButton) {
buttonPressed = inButton;
//call asynctask to tell the service inButton was pushed by passing
//buttonPressed
}
enumただし、静的関数内ActivityAまたはActivityB静的関数内で非静的を使用して渡すことができないため、これは機能しませんUtilClass。
Android初心者なので間違っていたら指摘していただけると助かります。
ありがとう!