我正在尝试显示一个ListFragment,它将在另一个片段中显示用户评论。出于测试目的,我使用父片段中的“onClick”方法调用ListFragment。但是,我似乎无法显示ListFragment,因为它没有“show”方法。我的代码是否有任何明显的问题我可以解决?
这是当我单击按钮以显示ListFragment时调用的方法。
private void showComments(JSONArray comments) {
ListFragment newFragment = CommentsFragment.newInstance(comments);
}
这是ListFragment本身。
public class CommentsFragment extends ListFragment {
public static CommentsFragment newInstance(JSONArray passedComments) {
CommentsFragment f = new CommentsFragment();
ArrayList<String> adapter = convertJSON(passedComments);
Bundle args = new Bundle();
args.putStringArrayList("adapter", adapter);
f.setArguments(args);
return f;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle args = new Bundle();
ArrayList<String> commentsArray = args.getStringArrayList("adapter");
ArrayAdapter<String> commentsAdapter = new ArrayAdapter<String>(
getActivity(), R.layout.comments_list,
commentsArray);
setListAdapter(commentsAdapter);
}
答案 0 :(得分:0)
您必须使用FragmentManager提交ListFragment,并在XML中包含将包含它的布局。
首先将FrameLayout添加到要放置ListFragment的XML中,然后使用getChildFragmentManager()获取FragmentManager,可以放置ListFragment。
答案 1 :(得分:0)
试试这个
private void showComments(JSONArray comments) {
ListFragment newFragment = CommentsFragment.newInstance(comments);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(android.R.id.content, newFragment);
fragmentTransaction.commit();
}