저는 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에없고 버튼 리스너가 없다는 것입니다. 나에게 자바 클래스를 인스턴스화하는 방법이 있어야하며, 조각을 정상적으로 확장하고 이벤트 리스너를 첨부 한 다음, 거기에서 생성 된 뷰를 PopupWindow 생성자로 전달하지만 어떻게 처리 할 수 있는지는 알 수 없습니다. 누구든지 나를 도울 수 있습니까?
FYI, Fragment 클래스의 Android-support-v4.jar 파일을 사용하여 Android 2.1 용으로 제작했습니다.
확실히 정답입니다. 감사합니다. 또한 PopupWindow에서 목록을 표시 할 때 목록에 지정한 ContextMenu를 표시하는 것을 거부했습니다. DialogFragment로 전환하면 문제를 해결할 수있었습니다. –
예를 들어 Popupwindow에 단편을 추가 할 수 있다면 마지막 문장을 설명하거나 예시 해 주시겠습니까? "이 단편을 레이아웃에 추가 할 수 있습니다 (원하지 않는 전화에서 말한 것처럼). 팝업으로 표시됨) 예상대로 작동합니다. " – JPMagalhaes
@JPMagalhaes, Strong은 PopupWindow에서 조각을 사용하지 않는 것이 좋습니다. 메모리 누수 문제가 발생할 수 있기 때문입니다. – Jacky