어떻게 클래스를 조각으로 형 변환 할 수 있습니까? 다음 시나리오가 있습니다 :클래스를 조각 객체로 변환
조각 단편;
조각 = SomeClass.class :
지금 내가 좋아하는이 단편에 어떤 값을 할당합니다.
캐니 타입 캐스팅 방법.? 감사합니다
어떻게 클래스를 조각으로 형 변환 할 수 있습니까? 다음 시나리오가 있습니다 :클래스를 조각 객체로 변환
조각 단편;
조각 = SomeClass.class :
지금 내가 좋아하는이 단편에 어떤 값을 할당합니다.
캐니 타입 캐스팅 방법.? 감사합니다
왜 SomeClass를 조각으로 캐스팅 하시겠습니까? SomeClass가 Fragment의 하위 클래스라면, Fragment 변수에 참조를 저장하기 위해 캐스트 할 필요가 없습니다. 단지 SomeClass로만 검색 할 수 있습니다. SomeClass가 Fragment의 하위 클래스가 아닌 경우 하나의 캐스트로 캐스팅하지 않아야합니다.
SomeClass가 Fragment를 확장하면 fragment = SomeClass.class 구문을 사용할 수 있습니다. 또 다른 방법은 SomeClass가 Fragment를 구현 한 다음 코드에 넣을 수 있습니다.
fragment= (Fragment)SomeClass.class
시도해보십시오. 그것은 나를 위해 작동합니다.
Class cur_class_frag = null;
switch (position) {
case 1:
cur_class_frag = Some_Fragment_Class.class;
cur_frag="recipees";
break;
case 2:
cur_class_frag = Facebook_Fragment_Class.class; //facebok
cur_frag="facebook";
break;
case 3:
cur_class_frag = Twitter_Fragment_Class.class; //twitter
cur_frag="twitter";
default:
break;
}
android.app.FragmentManager fragmanager = getFragmentManager();
//check if tag already exists
Fragment fragment2 = fragmanager.findFragmentByTag(cur_frag);
if (fragment2 !=null) {
//remove and add in content frame
fragmanager.beginTransaction().remove(fragment2).commit();
fragmanager.beginTransaction()
//.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
.replace(R.id.content_frame, fragment2,cur_frag)
.commit();
}
else{
//create it :)
Fragment frag = null;
try {
frag = (Fragment) cur_class_frag.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fragmanager.beginTransaction().add(R.id.content_frame, frag,cur_frag).commit();
여기서 나는 현재 조각을 가져 오는 메뉴 위치를 바꾸고 있습니다. 이미 존재하지 않으면 메뉴를 다시 추가합니다. 또한 조각 클래스 이름을 조각으로 캐스팅합니다. - 클래스가 존재하지 않으면 체크하지 않았습니다. - 그래서 조심하세요