私はAndroid開発には新しく、私がしようとしていることを達成する方法を混乱させています。私はいくつかの読書や断片について学んだので、さまざまな画面サイズのデザイン間でレイアウトとコードを共有することができます。私はいくつかのフラグメントを作成し、それらを正常に使用しました。しかし、私は電話で通常のアクティビティでフラグメントを表示したいが、タブレットにPopupWindow(またはより良い選択肢があれば同様のもの)でそのフラグメントを表示したいという状況があります。PopupWindowでフラグメントを正しく作成する
ボタンをクリックすると、フラグメントを膨張させてPopupWindowに表示する方法を理解することができました。私のコードは次のようになります。
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) BrowsingActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popupLayout = inflater.inflate(R.layout.serverconnection_fragment, null, false);
connectionListPopup = new PopupWindow(popupLayout, 300, 470, true);
connectionListPopup.showAtLocation(BrowsingActivity.this.findViewById(R.id.connectionListImage), Gravity.CENTER, 0, 0);
}
ポップアップが表示され、serverconnection_fragment.xmlに記述されているUIが表示されます。問題は、このように作成することで、FragmentクラスのServerConnectionFragment.javaがインスタンス化されることがないため、リスト内にUIがなく、ボタンのリスナーがないなどです。私は、Javaクラスをインスタンス化し、フラグメントを通常は膨張させ、イベントリスナーをアタッチし、そこで作成されたビューをPopupWindowコンストラクタに渡す方法があるようですが、どのように把握できません。誰か助けてくれますか?
私はAndroid 2.1のために、FragmentクラスのAndroid-support-v4.jarファイルを使用してこれを構築しています。
正解、ありがとう。また、PopupWindowでリストを表示していたときに、リストに指定したContextMenuを表示することを拒否しました。 DialogFragmentに切り替えれば、それを解決することができました。 –
可能な場合、ポップアップウィンドウに最初の例として、最後の文章を説明したり、説明したりできますか? "この断片をレイアウトに追加することはできますか?ポップアップとして表示されます)、期待どおりに動作します。 – JPMagalhaes
@JPMagalhaes、StrongはPopupWindowでフラグメントを使用しないでください。メモリリークの問題が発生する可能性があります。 – Jacky