2012-11-09 2 views
0

그래서 FragmentActivity가 있지만 전환 할 수 없습니다. 그것의 내 응용 프로그램의 주요 활동 있다면 그것은 잘 작동하지만 나는 의도 실행으로 활동이 중단되었지만 주 활동으로 설정되지 않은 경우

public class SomeFragmentActivity extends FragmentActivity implements AnimationLayout.Listener, 
    OnClickListener { 

public int mPage = 1; 

protected ListView mList; 
protected AnimationLayout mLayout; 
protected String[] mStrings = { "a", "b", "c", "d", "e", "f", "g", "h", "i" }; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.test_content_layout); 

    findViewById(R.id.sidebar_button).setOnClickListener(this); 

    mLayout = (AnimationLayout) findViewById(R.id.animation_layout); 
    mLayout.setListener(this); 

    mList = (ListView) findViewById(R.id.sidebar_list); 
    mList.setAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, mStrings)); 
    mList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 


} 

그리고 주요 활동의에서 onCreate에서

은 조각이 그 시작이 .. 그것으로 전환을 시도하지 않을 때 :

public void initialize() { 
     mActivity.setContentView(R.layout.activity_main_layout); 

     ((Button) findViewById(R.id.main_activity_button_some_list)) 
       .setOnClickListener(this); 
     ((Button) findViewById(R.id.main_activity_button_fragment)) 
       .setOnClickListener(this); 


    } 

이인가 그것의 생성 및 :

public void onClick(View v) { 
    Intent intent = null; 
    switch (v.getId()) { 
    case (R.id.main_activity_button_some_list): 
     intent = new Intent(this, SomeListActivity.class); 

     break; 

    case (R.id.main_activity_button_fragment): 
     intent = new Intent(this, SomeFragmentActivity.class); 
     break; 
    } 
    startActivity(intent); 
} 

내 평소 MainActivity에서 전환 할 수 있습니다. SomeListActivity.class에 도착할 수있게되어서 잘 모르겠습니다. 그 매니 페스트에서 정의 된 것은 괜찮습니다.

편집 :

11-09 18:48:53.652: E/AndroidRuntime(4268): FATAL EXCEPTION: main 
11-09 18:48:53.652: E/AndroidRuntime(4268): java.lang.NullPointerException 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1409) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.Activity.startActivityForResult(Activity.java:3351) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.Activity.startActivityForResult(Activity.java:3312) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.Activity.startActivity(Activity.java:3522) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.Activity.startActivity(Activity.java:3490) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at com.LoLCompanionApp.MainActivity.onClick(MainActivity.java:39) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.view.View.performClick(View.java:4084) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.view.View$PerformClick.run(View.java:16966) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.os.Handler.handleCallback(Handler.java:615) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.os.Handler.dispatchMessage(Handler.java:92) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.os.Looper.loop(Looper.java:137) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at android.app.ActivityThread.main(ActivityThread.java:4931) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
11-09 18:48:53.652: E/AndroidRuntime(4268):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
11-09 18:48:53.652: E/ 

AndroidRuntime(4268): at dalvik.system.NativeStart.main(Native Method) 
+1

게시물을 수정하여 오류 로그를 표시하십시오. – Eric

+0

죄송합니다, 지금 추가되었습니다 – VicVu

답변

0

문제는 IntentstartActivity()를 호출시 null 인 것입니다. ID 수신기 R.id.sidebar_button에 클릭 수신기를 연결했지만 ID가 R.id.main_activity_button_some_list 또는 R.id.main_activity_button_fragment 인 경우에만 intent을 null이 아닌 것으로 변경합니다. 그러나

public void onClick(View v) { 
    Intent intent = null; 
    switch (v.getId()) { 
    case (R.id.main_activity_button_some_list): 
     intent = new Intent(this, SomeListActivity.class); 

     break; 

    case (R.id.main_activity_button_fragment): 
     intent = new Intent(this, SomeFragmentActivity.class); 
     break; 
    } 
    if (intent != null) // Add this 
     startActivity(intent); 
} 

, 당신이 R.id.sidebar_button위한 새로운 case을 만들 제안 :

여기에 빠른 수정합니다.

+0

죄송합니다. 오해했습니다. 위의 onClickListener는 인 텐트에서 요청 된 활동에 있습니다. 그것은 다른 활동입니다. mainactivity에는 나의 스위치에서 2에 onclicklistener가있다. – VicVu

+0

그런 다음'MainActivity.onClick'; 그것은 충돌이있는 곳입니다. – Eric

+0

내 게시물의 하단 부분은 그 onclick .. – VicVu

관련 문제