0

だから私はAndroid開発とJavaプログラミング全般にかなり慣れていないので(まあ、プログラミング期間...)、オンラインで答えを見つけたものに出くわしましたが、なぜそれが機能するのか知りたいです。

その Android チュートリアル Web サイトのコードに基づいて、AlertDialog の作成に関係するクラスを作成しました。次に、別のアクティビティで、この AlertDialog クラスのオブジェクトをインスタンス化するメソッドを作成しました。次に、実際に .show() を使用して AlertDialog を呼び出してみました。

引数なしでは機能しないため、渡さなければならなかった 2 つの引数は、getFragmentManager() と、次のように引用符で囲まれている限り、任意の種類のテキストでした。

alertDialogObject.show(getFragmentManager(), "こんにちは");

最後に、このように書いた後、エラーはなくなり、AlertDialogボックスが私のアプリに正常に表示されました。show() に渡したものの基本と、show() が必要とする引数の種類を誰かに説明してもらえますか?

助けてくれてありがとう!!!

4

1 に答える 1

0

参照しているチュートリアルへのリンクがなければ、DialogFragmentコード スニペットに基づいて、の実装について話していると仮定します。

alertDialogObject.show(getFragmentManager(), "Hi");

「何に渡したのかshow()「どのような種類の引数show() wantsについてのあなたの質問に対する最良の答えについては、おそらくクラスのドキュメントをDialogFragment参照する必要があります。

2 番目の質問に具体的に答えるには、利用可能な 2 つのshow(...)方法を見てください。ちなみに、これらは Java 用語で「オーバーロード」と呼ばれます。つまり、同じ名前を持つが異なるパラメーターを受け入れるメソッドです。ドキュメントでは、通常、すべてのメソッドに、その機能、戻り値、期待されるパラメーターを説明する簡単な説明があります。次の 2 つも例外ではありません。

public int show(FragmentTransaction transaction, String tag)

ダイアログを表示し、既存のトランザクションを使用してフラグメントを追加し、トランザクションをコミットします。

public void show(FragmentManager manager, String tag)

ダイアログを表示し、指定された FragmentManager にフラグメントを追加します。これは、トランザクションを明示的に作成し、指定されたタグでフラグメントをトランザクションに追加し、コミットするのに便利です。これは、トランザクションをバック スタックに追加しません。フラグメントが破棄されると、新しいトランザクションが実行され、アクティビティからフラグメントが削除されます。

そのため、または.show(...)のいずれかの後にタグを付けて呼び出すオプションがあります。トランザクションやマネージャーを操作する方法については、大量のリソースがあります。それについて詳しく知りたい場合は、アクティビティとフラグメントの概念 (およびそれらの違い) を説明しているチュートリアルまたは Android ブックから始めることをお勧めします。それが例である場合は、Android SDK に付属の API デモを確認してください。FragmentTransactionFragmentManager

于 2013-04-27T02:57:12.170 に答える