Нов съм в разработването на Android и съм объркан как да постигна това, което се опитвам да направя. Прочетох и научих малко за фрагментите, за да мога да споделям оформление и код между дизайни с различни размери на екрана. Създадох няколко фрагмента и ги използвах успешно. Но имам ситуация, в която искам да покажа фрагмент в нормална дейност на телефона, но искам да покажа фрагмента в 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. Проблемът е, че създавайки го по този начин, класът на фрагмент ServerConnectionFragment.java никога не се инстанцира, така че няма елементи в списъка в моя потребителски интерфейс, няма слушатели на бутони и т.н. Изглежда, че трябва да има начин да създам екземпляр на Java класа, да го накарам да надува фрагмента нормално и да прикачи слушатели на събития, след което да предам създадения там изглед в конструктора PopupWindow, но не мога да разбера как. Може ли някой да ми помогне?
За информация, изграждам това за Android 2.1, използвайки файла Android-support-v4.jar за класовете Fragment.