개발자 콘솔에서 일부 오류가 발생합니다. 이 오류에 대한 한 가지 사실은 모두 android 4.1
버전을 사용하는 기기의 것입니다.Android onCreateView가 호출되지 않습니다.
편집 : 4.2 장치에서 일부 오류가 있지만 여전히 정확한 동작을 재현 할 수 없습니다.
나는 안드로이드 버전 4.1
으로 에뮬레이터 장치를 설정했고 debbuging을 통해 나는 onCreateView
이 호출되지 않는 것을 발견했다.
조각을 사용 중입니다.
@Override
public void onItemSelected(Bundle itemSelectedData) {
View rightLayout = findViewById(R.id.fragment_two);
if (rightLayout != null) {
// do something if we are in "tablet" mode
} else {
Infodata newFragment = new Infodata();
newFragment.setArguments(itemSelectedData);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentsboth, newFragment);
// Commit the transaction
transaction.commit();
}
}
내 클래스 Infodata
public class Infodata extends Fragment implements OnSeekBarChangeListener, OnItemSelectedListener
이를 우리가 수업이 수행하는 두 개의 창 또는 단일 창 레이아웃에있는 경우는 확인 후 나는 조각 (public class Fragments extends ActionBarActivity implements QueryFragment.OnQuerySelectedListener
) 등을 처리하는 클래스가 이 방법으로서 분류 :
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
//... more stuff
activityContext = getActivity().getApplicationContext();
bDFav = new Database(activityContext, true);
//... more stuff
}
및
0마지막 :
내 휴대 전화와boolean isItemFavorite() {
bDFav.open();
// do stuff
bDFav.close();
return isFavorite;
}
(안드로이드 버전 4.2.1) 내 Fragments
클래스는 Infodata newFragment = new Infodata();
을 수행하고 transaction.commit();
내 onCreateView
후 onCreateOptionsMenu
에 isItemFavorite()
호출에 필요한 모든 것을 인스턴스화라고합니다. 이로 인해 bDFav.open();
은 isItemFavorite()
이고 예상대로 작동합니다. 즉, nullpointerexception
을 생성하지 않습니다.
다른 한편으로는 android 4.1.1을 실행하는 에뮬레이터 장치에서 transaction.commit();
에서 동일하게 실행되지만 이후에는 내 메서드 onCreateView
이 호출되지 않으므로 아무 것도 인스턴스화하지 않습니다. isItemFavorite()
이 호출 될 때 onCreateOptionsMenu
은 광고라고하며 nullpointerexception
을 bDFav.open();
에 생성합니다.
onCreateView
이 (가) 왜 안드로이드 버전에서 호출되지 않으며 어떻게 우회 할 수 있습니까?