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
どのボタンを更新するかがわかります。次のようになります。ActivityA
ActivityB
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()
UtilClass
UtilClass
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初心者なので間違っていたら指摘していただけると助かります。
ありがとう!