2014-01-17 5 views
0

에 조각에서 이동할 때 캐치되지 않는 예외와 함께 프로그램을 종료?시도 내가 코드 조각에서 다른 조각을 열려고 다른 조각

런타임 예외 오류 : 활동을 인스턴스화 할 수 없습니다 ComponentInfo {com.bakalauras.rtaujenis/com.bakalauras.rtaujenis.LoginFragment} : java.lang.ClassCastException가이 : com.bakalauras.rtaujenis.LoginFragment는 캐스트 할 수없는 android.app하기 .Activity

나는 할 것을 내가 예를 마지막 행 TitlesFragment 클래스 else 문에 대한 http://developer.android.com/guide/components/fragments.html#Example 모습을 발견 렸기 때문에.

+0

logcat 데이터 게시 – Prem

+0

스택 추적 또는 logcat이 도움이됩니다. 또한 게시 한 코드는 조각이 아닌 다른 활동을 시작합니다. –

+0

내 로그 캣은 캐치되지 않는 예외 – user3099680

답변

1

코드 이름이 거의 없으므로 클래스의 이름에서 을로드하려고 시도한 것 같습니다. Intent을 사용합니다. 이 메커니즘은 Activities이 서로 시작하는 데 사용합니다. Fragments을 동적으로 추가하려면 FragmentTransactionFragmentManager에서 사용해야합니다. LoginFragment 만약

실제로 우리는 더 많은 코드를 볼 필요가 것 Activity입니다. LoginFragment 만약

Fragment 당신이 startActivity 함수를 사용하여 조각을 시작하려고 때문에이 충돌 년대 Android guide for using Fragments

+0

를 기록하지 않았다 그러나 안드로이드 가이드 튜토리얼 그들이 ListFragment에서 조각에 갈 의도를 사용하여,하지만 난 내 응용 프로그램이 작동을 멈 춥니 다 그렇게하려고 할 때. – user3099680

+0

나는 그렇게 생각하지 않는다. 참조하는 링크를 게시하십시오. – Emmanuel

+0

http://developer.android.com/guide/components/fragments.html TitlesFragment 클래스 검색 – user3099680

1

를 참조하십시오입니다.

조각이 사용되는 방식이 아닙니다. 당신은 당신이 한 조각에서 다른 변경하려고 따라서 경우, 응용 프로그램의 창 및 그 응용 프로그램의 다양한 섹션과 조각 같은 활동 생각할 수있는, 당신은 사용하여 현재 뷰를 교체해야 FragmentTransaction

android.support.v4.app.FragmentManager fragmentManager1 = getSupportFragmentManager(); 
FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction(); 
fragmentTransaction1.replace(R.id.container, LoginFragment); 
fragmentTransaction1.commit(); 

여기서 R.id.container은 원래보기를 포함하고 새보기를 '감싸는'프레임입니다.

체크 아웃 this tutorial은 조각 작업하는 방법을 배울 수 있습니다. 또한 그들이

+0

'LoginFragment.class' 실제로 – Emmanuel

+0

더 내 LoginFragment.class는 그럼 난 내 대답에 게시 된 링크의 문서를 참조하십시오 조각 – user3099680

+0

없다, 우리가 모르는 ...'Activity' 수 있습니다. – Emmanuel

0

이 코드 샘플을 봅니다 활동보다는 다르기 때문에 Fragments의 라이프 사이클을 이해하는 공식 문서 조각을 확인하십시오.

private void register(){ 
     // Create new fragment and transaction 
     Fragment newFragment = new LoginFragment(); 

     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

     // Replace whatever is in the fragment_container view with this fragment, 
     // and add the transaction to the back stack 

     transaction.replace(R.id.fragment_container, newFragment); 
     transaction.addToBackStack(null); 

     // Commit the transaction 
     transaction.commit(); 
    } 
+0

아무런 설명이없는 코드를주는 것은 좋은 일을하지 못합니다 ... – Emmanuel

+0

버튼을 누르면 코드가 newFragment로 바뀌지 않습니다. – user3099680

관련 문제