我是Android开发的新手,对于如何实现我想要做的事情感到困惑。我已经阅读了一些关于片段(Fragment)的资料,以便可以在不同屏幕大小的设计之间共享布局和代码。我创建了几个片段,并成功地使用了它们。但是,我遇到了这样一种情况:我想在手机上的常规活动中显示一个片段,但想在平板电脑上的PopupWindow(或类似的东西,如果有更好的选择)中显示该片段。
我设法找出如何在单击按钮时膨胀(inflate)片段并在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构造函数中,但我无法弄清楚如何做。有人能帮帮我吗?FYI,我正在使用Android-support-v4.jar文件为Fragment类构建Android 2.1应用程序。