여러 개의 탭이있는 곳에 응용 프로그램이 있습니다. 어느 한쪽과 상호 작용하여 표시 할 단편을 호출합니다. 불행히도 아래 조각으로 전환하면 해당 목록에 채워지는 사실에도 불구하고 내 listView가 나타나지 않습니다. 제공 할 수있는 도움에 대해 대단히 감사합니다.조각의 ListView가 표시되지 않습니다.
조각의 관련 코드는 :
public class Fragment_1 extends SherlockFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
//If time permits, I will try to make a Custom Adapter implemented with a TreeSet
TreeSet<BlacklistWord> theSet = MainActivity.getInstance().datasource.GetAllWords();
ArrayList<String> list = new ArrayList<String>();
for(BlacklistWord i :theSet){
System.out.println(i.getWord());
list.add(i.getWord());
}
Collections.sort(list);
//Making BlackList
listView = new ListView(getActivity());
listView.findViewById(R.id.listview);
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
container.addView(listView);
return inflater.inflate(R.layout.blacklist, container, false);
// return inflater.inflate(R.layout.blacklist, container, false);
}
}
XML은
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
안녕하세요, Gunar, 답장을 보내 주셔서 감사합니다. 솔루션 구현을 시도 할 때 RuntimeException이 "자식의 부모에서 먼저 removeView()"를 호출하지 않아서 throw됩니다. MainActivity에서 removeView를 수행해야합니까? – NumenorForLife
위의 코드는 부모 활동에서 멋진 것을하지 않는다는 가정하에 게시했습니다. 프래그먼트는 뷰 계층 구조의 관점에서 액티비티와 분리되어야하며 그 반대의 경우도 마찬가지입니다 ... 비즈니스 로직을 이해할 수 없으므로 더 이상 설명 할 수 없습니다. – gunar
다음 코드 줄을 사용하여 알아 냈습니다. \t \t ((ViewGroup) listView.getParent()). removeView (listView); 다른 SO 게시물에서 추천했습니다. – NumenorForLife