0

だからここに私の問題があります。ダイアログフラグメントを使用して情報を表示しています。そのフラグメントには、配列リストで埋められたスピナー ビューがあります。通常、次のようにフラグメントにそのアダプターを作成します。

ArrayAdapter<String> teamsAdapter = new ArrayAdapter<String>(getActivity(),  
android.R.layout.simple_spinner_item, Variables.teamNames); 

teamsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       Variables.spinner.setAdapter(teamsAdapter);

変数は、すべての変数を保持するユーザー定義クラスです。ここに私の質問があります。私は約10個のDialogFragmentsを持っており、それらのほとんどすべてにスピナーがあります。そのアダプターを変数クラスで定義したいと思います。必要なときはいつでも、変数クラスから呼び出すだけです。残念ながら、それを行うには、アダプター コンストラクターに getActivity() が必要です。私はそれを回避することはできません。

ところで、それは良い考えですか、それともインターフェイスを使用する必要がありますか? AndroidでJavaインターフェイスを使用する理由を誰かが実際に教えてくれたら最高です?

4

1 に答える 1

1

フラグメントは、スピナーを取得してレイアウトに追加するために、いくつかの Variables メソッドを呼び出す必要がありますよね? したがって、その呼び出しを行うときは、Activity を Context として次のように渡すことができます。

ArrayAdapter<String> teamsAdapter = Variables.getAdapterForTeams(getActivity());

インターフェイスに関する質問は、Android ではなく Java に関する質問です。Java でインターフェイスを使用することが理にかなっている場合は、Android で使用することも理にかなっています。インターフェースを使用する理由とタイミングを説明する、Java に関する文献やオンライン リソースはたくさんあります。オンラインで検索すると、それに関する多くのリソースが見つかると確信しています。

于 2013-04-29T00:25:44.663 に答える