0

다른 Fragment 내에서 사용자 주석을 표시하는 ListFragment를 표시하려고합니다. 테스트 목적으로 부모 조각 내에서 "onClick"메서드를 사용하여 ListFragment를 호출합니다. 그러나 "show"메서드가 없으므로 ListFragment를 표시 할 수 없습니다. 내가 고칠 수있는 코드에 명백한 문제가 있습니까?조각 내 ListFragment 표시

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

FragmentManager를 사용하여 ListFragment를 커밋해야하고 XML을 포함 할 레이아웃이 있어야합니다.

먼저 ListFragment를 배치 할 XML에 FrameLayout을 추가 한 다음 getChildFragmentManager()를 사용하여 ListFragment를 배치 할 수있는 FragmentManager를 가져옵니다.

+0

같은 시도 나는 ListView에 또는 텍스트 뷰를해야합니까? –

+0

컨테이너로 사용하는 ID가있는 빈 framelayout이어야합니다. –

+0

불행히도 내 현재 조각 위에 listfragment가 배치됩니다. –

0

의 FrameLayout이의 XML 내에서이

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(); 
    } 
+0

'R.id.content' 태그의 용도는 무엇입니까? CommentsFragment를'R.layout.comments_list '로 벌써 팽창 시켰습니다. –

+0

@MilesPeele R.id.content는 뷰를 보유하는 루트 레이아웃입니다. R.id.content 대신 R.layout.comments_lis를 사용하십시오. –

+0

맞아, 그게 내가 생각한거야. 나는 "ID가 발견되지 않음"예외를 얻었습니다. –