public class MainActivity extends Activity {
private Fragment fragment;
private Button btn1, btn2, btn3;
private Fragment newFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
StartFragment myFragment = new StartFragment();
ft.add(R.id.myFragment, myFragment);
ft.commit();
buttonsPressed();
}
private void buttonsPressed() {
// TODO Auto-generated method stub
btn1 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
newFragment = new Fragment();
Log.i("Button1", "Pressed");
}
});
btn2 = (Button)findViewById(R.id.button2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
newFragment= new Fragment2();
}
});
btn3 = (Button)findViewById(R.id.button3);
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
newFragment = new Fragment3();
}
});
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.myFragment, newFragment);
transaction.commit();
}
,所以我遵循在線教程創建的片段。現在我走了,試圖看看我可以自己做什麼。請記住,我是android編程的新手。我的按鈕工作正常,但我的最後一段代碼完全破壞了應用程序。我知道我的按鈕是通過logcat測試工作的。當我把一段代碼transaction.replace(R.id.myFragment,newFragment)它說不幸它已經停止。我離開嗎?
logcat的錯誤
06-13 02:22:30.184: E/AndroidRuntime(21154): FATAL EXCEPTION: main
06-13 02:22:30.184: E/AndroidRuntime(21154): Process: com.example.transitionfragments, PID: 21154
06-13 02:22:30.184: E/AndroidRuntime(21154): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.transitionfragments/com.example.transitionfragments.MainActivity}: java.lang.NullPointerException
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread.access$900(ActivityThread.java:175)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.os.Handler.dispatchMessage(Handler.java:102)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.os.Looper.loop(Looper.java:146)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread.main(ActivityThread.java:5602)
06-13 02:22:30.184: E/AndroidRuntime(21154): at java.lang.reflect.Method.invokeNative(Native Method)
06-13 02:22:30.184: E/AndroidRuntime(21154): at java.lang.reflect.Method.invoke(Method.java:515)
06-13 02:22:30.184: E/AndroidRuntime(21154): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
06-13 02:22:30.184: E/AndroidRuntime(21154): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
06-13 02:22:30.184: E/AndroidRuntime(21154): at dalvik.system.NativeStart.main(Native Method)
06-13 02:22:30.184: E/AndroidRuntime(21154): Caused by: java.lang.NullPointerException
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.BackStackRecord.doAddOp(BackStackRecord.java:395)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.BackStackRecord.replace(BackStackRecord.java:430)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.BackStackRecord.replace(BackStackRecord.java:422)
06-13 02:22:30.184: E/AndroidRuntime(21154): at com.example.transitionfragments.MainActivity.buttonsPressed(MainActivity.java:85)
06-13 02:22:30.184: E/AndroidRuntime(21154): at com.example.transitionfragments.MainActivity.onCreate(MainActivity.java:40)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.Activity.performCreate(Activity.java:5451)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-13 02:22:30.184: E/AndroidRuntime(21154): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
06-13 02:22:30.184: E/AndroidRuntime(21154): ... 11 more
06-13 02:24:31.813: E/AndroidRuntime(21362): FATAL EXCEPTION: main
06-13 02:24:31.813: E/AndroidRuntime(21362): Process: com.example.transitionfragments, PID: 21362
06-13 02:24:31.813: E/AndroidRuntime(21362): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.transitionfragments/com.example.transitionfragments.MainActivity}: java.lang.NullPointerException
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread.access$900(ActivityThread.java:175)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.os.Handler.dispatchMessage(Handler.java:102)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.os.Looper.loop(Looper.java:146)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread.main(ActivityThread.java:5602)
06-13 02:24:31.813: E/AndroidRuntime(21362): at java.lang.reflect.Method.invokeNative(Native Method)
06-13 02:24:31.813: E/AndroidRuntime(21362): at java.lang.reflect.Method.invoke(Method.java:515)
06-13 02:24:31.813: E/AndroidRuntime(21362): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
06-13 02:24:31.813: E/AndroidRuntime(21362): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
06-13 02:24:31.813: E/AndroidRuntime(21362): at dalvik.system.NativeStart.main(Native Method)
06-13 02:24:31.813: E/AndroidRuntime(21362): Caused by: java.lang.NullPointerException
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.BackStackRecord.doAddOp(BackStackRecord.java:395)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.BackStackRecord.add(BackStackRecord.java:385)
06-13 02:24:31.813: E/AndroidRuntime(21362): at com.example.transitionfragments.MainActivity.buttonsPressed(MainActivity.java:84)
06-13 02:24:31.813: E/AndroidRuntime(21362): at com.example.transitionfragments.MainActivity.onCreate(MainActivity.java:40)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.Activity.performCreate(Activity.java:5451)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-13 02:24:31.813: E/AndroidRuntime(21362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
06-13 02:24:31.813: E/AndroidRuntime(21362): ... 11 more
06-13 02:24:46.177: E/AndroidRuntime(21475): FATAL EXCEPTION: main
06-13 02:24:46.177: E/AndroidRuntime(21475): Process: com.example.transitionfragments, PID: 21475
06-13 02:24:46.177: E/AndroidRuntime(21475): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.transitionfragments/com.example.transitionfragments.MainActivity}: java.lang.NullPointerException
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread.access$900(ActivityThread.java:175)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.os.Handler.dispatchMessage(Handler.java:102)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.os.Looper.loop(Looper.java:146)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread.main(ActivityThread.java:5602)
06-13 02:24:46.177: E/AndroidRuntime(21475): at java.lang.reflect.Method.invokeNative(Native Method)
06-13 02:24:46.177: E/AndroidRuntime(21475): at java.lang.reflect.Method.invoke(Method.java:515)
06-13 02:24:46.177: E/AndroidRuntime(21475): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
06-13 02:24:46.177: E/AndroidRuntime(21475): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
06-13 02:24:46.177: E/AndroidRuntime(21475): at dalvik.system.NativeStart.main(Native Method)
06-13 02:24:46.177: E/AndroidRuntime(21475): Caused by: java.lang.NullPointerException
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.BackStackRecord.doAddOp(BackStackRecord.java:395)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.BackStackRecord.add(BackStackRecord.java:385)
06-13 02:24:46.177: E/AndroidRuntime(21475): at com.example.transitionfragments.MainActivity.buttonsPressed(MainActivity.java:84)
06-13 02:24:46.177: E/AndroidRuntime(21475): at com.example.transitionfragments.MainActivity.onCreate(MainActivity.java:40)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.Activity.performCreate(Activity.java:5451)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-13 02:24:46.177: E/AndroidRuntime(21475): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
06-13 02:24:46.177: E/AndroidRuntime(21475): ... 11 more
你能後的logcat的錯誤? 'R.id.myFragment'是你佈局中的一個元素嗎? – Wakim
是的,我把它放在我的文章中。而myFragment是從另一個類創建的StartFragment myFragment = new StartFragment();它的默認片段顯示在應用程序 – user3738988