0

デフォルトのActivityクラスを、roboguiceを使用してこのクラスから拡張された独自の実装に置き換える方法はありますか?

たとえば、次のようなアクティビティです。

public class MyActivity extends Activity
{...}

デフォルトのActivityクラスを置き換え、他のすべての派生アクティビティの基本アクティビティになります。

4

1 に答える 1

1

はい。最も簡単な方法は、基本アクティビティをRoboActivityから拡張することです。

例えば。

class MyBaseActivity extends RoboActivity { ... }

そして、すべてのアクティビティをMyBaseActivityから拡張します。

ただし、何らかの理由でRoboActivityから拡張したくない場合は、次のようにすることで、自分のアクティビティにインジェクションを簡単に追加できます。

class MyBaseActivity extends Activity {

    public void onCreate(Bundle b) {
        super.onCreate(b);
        RoboGuice.getInjector(this).injectMembersWithoutViews(this);
    }

    public void onContentChanged() {
        super.onContentChanged();
        RoboGuice.getInjector(this).injectViewMembers(this);
    }
}

詳細については、RoboActivityのソースを参照してください。イベントが必要ない限り、必要な変更は非常に簡単です。

于 2011-12-13T14:12:47.447 に答える