2012-10-19 4 views
0

내가 SherlockFragmentActivity를 사용하고 내가 가진 : 그것은 잘 작동안드로이드 SherlockFragmentActivity - 탭

public class TestActivity extends SherlockFragmentActivity { 


    private static enum Tab { 
     Test1("test1", TestOneFragment.class), 
     Test2("test2", TestTwoFragment.class), 
     private final String title; 
     private final Class<? extends Fragment> clazz; 

     private Tab(String title, Class<? extends Fragment> clazz) { 
      this.title = title; 
      this.clazz = clazz; 
     } 

     private String getTitle() { 
      return title; 
     } 

     private Class<? extends Fragment> getFragmentClass() { 
      return clazz; 
     } 
    } 

, 내가 Test1을하고 Test2를이 같은 "패키지"에 있기 때문에.

어떻게 외부 "패키지"클래스를 추가합니까? com.bla.blaa.BlaActivity를 가져올 때; 이 같은이 사용

The constructor TestActivity.Tab(String, Class<BlaActivity>) is 
    undefined 

답변

0

당신은 단편을 연장하지 않는 SherlockFragmentActivity 생성자 클래스에 전달할 수 없습니다 :

private static enum Tab { 
     Blabla("Blabla", BlaActivity.class), 
     Test1("test1", TestOneFragment.class), 
     Test2("test2", TestTwoFragment.class); 

나는 오류가 있습니다. Tab()에 활동 (BlaActivity.class)을 전달하려는 것 같습니다. SherlockFragmentActivity는 단편과 함께 작동합니다. 인 텐트를 사용하여 탭 중 하나에서 다른 응용 프로그램을 시작할 수 있습니다.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address"); 
startActivity(launchIntent); 
+0

다른 (외부) 응용 프로그램을 탭에 추가하려고합니다. – user1704195

+0

하지만 어떻게 사용합니까 enum Tab { – user1704195

+0

그렇게 할 수 있도록 설계되지 않은 경우 다른 방법으로 캡슐화 할 수 있다고 생각하지 않습니다. 보안 허점 일 것입니다. 왜냐하면 누군가 당신이 다른 앱에있는 것처럼 위장하여 허위로 코드에 접근해서는 안되기 때문입니다. – BenTobin