2014-10-10 2 views
-1

조각 레이아웃을 호출하려고하면 다음 오류로 고생하고 있습니다. 여기에 코드가 있습니다.조각에 대한 ID가 없습니다. (안드로이드 애플리케이션)

MainActivity;

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void showFragOne(View view){ 
    FragmentManager FM = getFragmentManager(); 
    FragmentTransaction FT = FM.beginTransaction(); 
    FT.add(R.layout.frag_one, new FragOne()); 
    FT.commit(); 
} 

}

showFragOne은 ativity_main 레이아웃 할 때 버튼 클릭이라고합니다. frag_one은 FragOne Fragment의 레이아웃입니다. Fragment Class;

public class FragOne extends Fragment{ 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View view = inflater.inflate(R.layout.frag_one, container, false); 
    return view; 
} 

}

이 해결을 도와주세요.

답변

4

add()은 잘못되었습니다. 첫 번째 매개 변수는 ViewGroupid이며 조각 자체의 레이아웃이 아니라 조각을 호스트합니다. 예 :

FT.add(android.R.id.content, new FragOne()); 
+0

호스트로 연결되는 View의 ID를 찾는 방법은 무엇입니까? 기본적으로, 주요 활동에서 마지막 제어 후에 추가 할 조각을 기대합니다. – Adinarayana

+0

일반적으로 조각을 처리 할 레이아웃 안에 선언합니다. 예를 들어 FrameLayout이 될 수 있습니다. – Blackbelt

+0

더 명확히 할 수 있습니까? 예를 들어, 저는 activity_main에 FrameLayout을 추가했습니다. 이 FrameLayout 자체에는 ID가 없습니다. 이것은 뷰 중 하나와 매핑되어야합니다. 그러면 FragmentTransaction.add()에서이 FrameLayout의 ID를 어떻게 제공 할 수 있을까요? – Adinarayana

관련 문제