私はいくつかのカードを構築するライブラリを使用しています、私のJavaはライブラリクラスを拡張しています。私はJavaクラスでFragmentManagerを使用する必要があります。あなたはFragment
参照している場合activity.getFragmentManager()
アクティビティを拡張せずにフラグメントマネージャをフェッチする方法
:あなたはActivity
参照を持っている場合は
私はいくつかのカードを構築するライブラリを使用しています、私のJavaはライブラリクラスを拡張しています。私はJavaクラスでFragmentManagerを使用する必要があります。あなたはFragment
参照している場合activity.getFragmentManager()
アクティビティを拡張せずにフラグメントマネージャをフェッチする方法
:あなたはActivity
参照を持っている場合は
はfragment.getFragmentManager()
を彼らは両方のpublic
方法ですが、あなたは、アクティビティまたはフラグメントのいずれかへの参照が必要になります。また
、そしてあなたがView
参照を持っている場合、私は、それをお勧めしませんが、あなたがアップキャストとFragmentManager
その方法を取得することができるかもしれないので、view.getContext()
方法はそうは、Activity
になります。しかし、これは潜在的に危険であり、Androidの実装が変更された場合はいつでも動作を停止する可能性があるため、実際に自分が行っていることを知る必要があります。アクティビティ/フラグメント参照を渡すことは、実際には行かなくてはなりません。
以下のコードを貼り付けます。public class CustomExpandCard extends CardExpand { String text1; public CustomExpandCard(コンテキストコンテキスト、文字列text1、文字列text2、文字列text3、文字列text4){ super(context、R.layout.carddemo_example_inner_expand); this.text1 = text1; } }内部クラスを作成してコンテキストを渡す必要がありますか。実際に私はアンドロイドに新しいですが、それは多くの助けになるいくつかのサンプルコードを教えてくれますか? –
getFragmentManager()
は、public
non-static
の方法はActivity
です。したがって、FragmentManager
を取得するには、activity
のcontext
が必要です。たとえあなたがactivity
クラスを拡張していなくても、あなたはそのcontext
を持っている必要があります。
また、このメソッドの説明を見ると、それがクリアされます。
このアクティビティに関連付けられたフラグメントと対話するためのFragmentManagerを返します。
/**
* Return the FragmentManager for interacting with fragments associated
* with this activity.
*/
public FragmentManager getFragmentManager() {
return mFragments.getFragmentManager();
}
のでactivity
せず、FragmentManger
は存在しません。
コンストラクタまたはメソッドのいずれかのパラメータとして外部依存として受け入れることができます。 – ootinii