0

与えられたコード:

public class CommandSequence {

public CommandSequence() {
}

public void startCommunications(View v) {
    Bundle dataout1 = new Bundle();
    dataout1.putInt("ACTION", Communications.ACTION_LOAD_COMMAND_ONLY);
    dataout1.putInt("PORT", Commands.MESSAGE_TYPE_SMC);
    dataout1.putInt("COMMAND", Commands.SMC_RESETEVENTSTATUS);
    ((MainActivity) v.getContext()).sendMessageToBackgroundCommunicationsService(
        Communications.MESSAGE_LOAD_COMMAND,
        dataout1);
}
}

呼び出し元のアクティビティコンテキストである「MainActivity」を使用して「sendMessageToBackgroundCommunicationsService()」をキャストする必要があります。

このメソッドを任意のアクティビティクラスから呼び出すことができるように、実行時にメソッド呼び出しをキャストできるようにするパラメーターを渡すことは可能ですか?

4

1 に答える 1

1

すべてのアクティビティが継承する基本アクティビティクラスを作成し、電話をかける必要があるときに代わりにこれにキャストしてみませんか。

((MyBaseActivity) v.getContext()).sendMessageToBackgroundCommunicationsService(
    Communications.MESSAGE_LOAD_COMMAND,
    dataout1);

[編集]実際、コードを少し良くするために、アクティビティをメソッドに渡すことができるので、別のクラスを知る必要があるクラスへの依存はありません。

public void startCommunications(View v, Class myActivity) {
 //your code
}
于 2012-08-23T13:08:27.043 に答える