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. Roboguice注入システムサービス
- 3. Android Roboguice例外
- 4. カスタムAndroidアカウントでネイティブ連絡先挿入アクティビティを呼び出す
- 5. アクティビティを拡張せずにroboguiceを使用する
- 6. glassfishのCDI pojoでサーブレットオブジェクトを挿入してください
- 7. Android-BindingとRoboguiceはどうですか?
- 8. Android EditTextを挿入する
- 9. 実行時にアクティビティに動的にレイアウトを挿入する
- 10. roboguice独自の実装でアクティビティを置き換えよう
- 11. androidのsqliteにクエリを挿入する
- 12. イメージをAndroidデータベースに挿入
- 13. Android:データをデータベースに挿入
- 14. tabhostに他のアクティビティを挿入するには?
- 15. SQLiteデータベースに挿入します。Androidで
- 16. アクティビティをフラグメントに挿入するにはどうすればよいですか?
- 17. ListViewアクティビティ、リストアイテムの動的挿入
- 18. 挿入中に列を挿入する
- 19. 別のプロジェクトにアクティビティを挿入する正しい方法は何ですか?
- 20. SQLiteデータベースに配列をandroidに挿入
- 21. Android MediaStoreプレイリストにhttp URLを挿入
- 22. ANDROID - データをデータベースに挿入レポート、アクティビティを開始できませんでしたComponentInfo:java.lang.NullPointerException
- 23. Android sqlite動的挿入クエリ
- 24. Android SQLiteデータの挿入
- 25. Androidデータの挿入とURI
- 26. アクティビティまたはビューにコードを挿入する必要がありますか?
- 27. 構文エラー、挿入 ";" AndroidでStatementを完成させるには?
- 28. mysqlテーブルの挿入を挿入する
- 29. sqlite androidに値を挿入するには
- 30. Androidデータベースの初めに挿入
:)応答に時間をとってくれてありがとう。 '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