Roboguiceを使用してAndroidアクティビティサブクラスをPOJOに挿入する方法はありますか?RoboguiceでPOJOにAndroidアクティビティを挿入する
答えて
最初はこれが私の最初の投稿です。私は勇気がありますし、うまくいけば私はあなたの質問に答えることができ、私が始めると負の数字にうまくいかないでしょう。
私はここ数日間、Roboguiceを発見したので、ここで助けてくれることを願っています。また、Javaで私の最初のスタブ.Netを使用するので、あまりにも謝罪する場合は、通常のJavaスタイルの不適切な構文があります。
私は、あなたが望むアクティビティ、Pojoや他のアクティビティのインスタンスを作成するアクティビティに依存すると思います。
ここで私が設定し試したことの両方について例を挙げようとします。
public interface IMySecondActivity {}
public class MySecondActivity extends RoboActivity implements IMySecondActivity {}
public interface ITestPojo {}
public class TestPojo implements ITestPojo
{
@Inject public TestPojo(IMySecondActivity mySecondActivity, Activity activity)
{
//So at this point here mySecondActivity is an instance of IMySecondActivity
//set up by roboguice
//and activity is the activity which created this TestPojo
}
}
public class TestAppModule extends AbstractAndroidModule
{
@Override protected void configure()
{
bind(ITestPojo.class).to(TestPojo.class);
bind(IMySecondActivity.class).to(MySecondActivity.class);
}
}
public class MyActivity extends RoboActivity implements IMyActivity
{
@Inject ITestPojo testPojo;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
だから私はITestPojoとIMySecondActivityをバインドする方法を知っているRoboGuiceためのモジュールを構成しています。
私たちは現在、MyActivityアクティビティを実行していると仮定します。これが起動すると、TestPojoのインスタンスが注入されます。この注入中にそのコンストラクタが呼び出され、TestPojoコンストラクタへのパラメータが解決され、IMySecondActivity MyActivityを含む。
しかし、TestPojoがまだ構築中であるため、testActivity内ではtestPojoがnullのままであるため、この状況に注意する必要があります。
あり、我々は活動を得ることができる別の方法もあり、それはプロバイダがポイントでのアクティビティを取得するために後で求められることができるようにプロバイダにTestPojoクラスで
Provider<Activity> activityProvider;
public TestPojo(Provider<Activity> activity)
{
activityProvider = activity;
}
public void Test()
{
//This should retrieve your activity.
Activity activity = activityProvider.get();
}
を使用することですどこで使用された。
あなたのpojoが使用する予定のアクティビティタイプがわかっている場合は、代わりにProvider<MyActivity>
を使用できます。
私はこれが助けてくれることを願っています:-)
- 1. Roboguiceを使用して最終メンバーをアクティビティに挿入する方法は?
- 2. Android Roboguice例外
- 3. Roboguice注入システムサービス
- 4. アクティビティを拡張せずにroboguiceを使用する
- 5. カスタムAndroidアカウントでネイティブ連絡先挿入アクティビティを呼び出す
- 6. アノテーションをpojoに挿入できますか?
- 7. グーグル+パートナー挿入アクティビティ
- 8. Android-BindingとRoboguiceはどうですか?
- 9. 他の非アクティビティクラスAndroidからアクティビティにTextViewを挿入するには?
- 10. firebaseでアンドロイドPOJOを挿入すると、値のjsonリストになります
- 11. roboguice独自の実装でアクティビティを置き換えよう
- 12. スプリング統合によるpojoデータベースへの挿入
- 13. glassfishのCDI pojoでサーブレットオブジェクトを挿入してください
- 14. Marklogic - Java APIでpojoをjsonドキュメントとして挿入
- 15. Android EditTextを挿入する
- 16. Android - カレンダーイベントを挿入する
- 17. Android:フラグメントからインテントへのストリングをアクティビティに挿入できません。
- 18. Android - 非アクティビティやフラグメントへの短剣の挿入
- 19. 実行時にアクティビティに動的にレイアウトを挿入する
- 20. Android Webview JavaScriptをJavascriptで挿入する
- 21. androidのsqliteにクエリを挿入する
- 22. androidのmysqlに値を挿入する
- 23. tabhostに他のアクティビティを挿入するには?
- 24. イメージをAndroidデータベースに挿入
- 25. Android:データをデータベースに挿入
- 26. Android Retrofit POJOモデル
- 27. SQLiteデータベースに挿入します。Androidで
- 28. アクティビティの途中にスプラッシュ画面を挿入する
- 29. 異なるアクティビティからsqlite dbに挿入する
- 30. アクティビティをフラグメントに挿入するにはどうすればよいですか?
:)応答に時間をとってくれてありがとう。 'TestPojo'コンストラクタに提供されるインスタンスが、' TestActivity'の新しいインスタンスではなく、 'TestPojo'が注入されている' MyActivity'の** same **インスタンスであることを確かめますか? RoboGuiceは、Activityや他のAndroidフレームワーク管理クラスの新しいインスタンスを作成するように要求してはいけません。なぜなら、容易にそうするかもしれません(特に、引数なしのコンストラクタを持つクラスの場合)。存在。代替ソリューションにも同じことが言えます。 –
私は確信しています。月の仕事で、チェックする必要がありますが、あなたの活動がRoboActivityから派生した場合、それを管理し、TestPojoにアクティビティを注入するという魔法を尽くします。 TestPojoのインスタンスを作成するActivityであると仮定しています。TestPojoコンストラクタのパラメータ "Activity activity"はMyActivityでした。作成する内容を教えていないので、システムでは、roboguiceは解決すべき不明確なActivtyについて不平を言っていないので、私にMyActivityを与えました:-S mehは合理的ですか?申し訳ありません2ここでは多くの前提があります。 – RichardWilliams
また私はちょうど考えを持っていましたが、別のアクティビティであれば再帰的に立ち往生しませんでした。新しいTestPojoを作成するたびに作成する必要があり、別のActivty ...などと思っていました。 RoboGuiceがAndroidで管理されていないアクティビティの新しいインスタンスを作成するのが悪いRoboGuiceがTestPojoによって既に作成されているアクティビティがあるかどうかを知る必要があり、アンドロイドフレームワークがこのアクティビティを求めているときにRoboGuiceがこれを使用するように、これを使用しますか? – RichardWilliams