Note that there are some explanatory texts on larger screens.

plurals
  1. PONull Pointer Exception on Fragment Manager
    primarykey
    data
    text
    <p>I have a <code>ActivityFragments</code> with three<code>Buttons</code> and <code>FragmentOne</code>, <code>FragmentTwo</code>, <code>FragmentThree</code> classes. When <code>Button1</code> is pressed it has to show <code>FragmentOne</code> and hide <code>FragmentTwo</code> and <code>FragmentThree</code>. If <code>Button2</code> is pressed it has to show <code>FragmentTwo</code> and hide <code>FragmentOne</code> and <code>FragmentThree</code>. Similarly if<code>Button3</code> is pressed it has to show <code>FragmentThree</code> and hide <code>FragmentTwo</code> and <code>FragmentOne</code>. My code didn't work showing <code>NullPointerException E/AndroidRuntime(362): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:656)</code> </p> <p><strong>Logcat:</strong> </p> <pre><code>04-08 08:10:31.830: E/AndroidRuntime(362): FATAL EXCEPTION: main 04-08 08:10:31.830: E/AndroidRuntime(362): java.lang.NullPointerException 04-08 08:10:31.830: E/AndroidRuntime(362): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:656) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.os.Handler.handleCallback(Handler.java:587) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.os.Handler.dispatchMessage(Handler.java:92) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.os.Looper.loop(Looper.java:123) 04-08 08:10:31.830: E/AndroidRuntime(362): at android.app.ActivityThread.main(ActivityThread.java:4627) 04-08 08:10:31.830: E/AndroidRuntime(362): at java.lang.reflect.Method.invokeNative(Native Method) 04-08 08:10:31.830: E/AndroidRuntime(362): at java.lang.reflect.Method.invoke(Method.java:521) 04-08 08:10:31.830: E/AndroidRuntime(362): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-08 08:10:31.830: E/AndroidRuntime(362): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-08 08:10:31.830: E/AndroidRuntime(362): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p><a href="http://pastebin.com/0yRVfpjV" rel="nofollow">You can find it here too </a></p> <p>And this is the code : <strong>MainActivity.java</strong></p> <pre><code> public class MainActivity extends FragmentActivity implements OnClickListener { Button b1, b2, b3; Fragment f1, f2, f3; FragmentManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.button1); b2 = (Button) findViewById(R.id.button2); b3 = (Button) findViewById(R.id.button3); b1.setOnClickListener(this); b2.setOnClickListener(this); b3.setOnClickListener(this); manager = getSupportFragmentManager(); f1 = manager.findFragmentById(R.id.first); f2 = manager.findFragmentById(R.id.second); f2 = manager.findFragmentById(R.id.third); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: if(b1.isPressed()){ FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.hide(f2); transaction.hide(f3); transaction.show(f1); transaction.commit(); } break; case R.id.button2: if(b2.isPressed()){ FragmentTransaction transaction1 = getSupportFragmentManager() .beginTransaction(); transaction1.hide(f1); transaction1.hide(f3); transaction1.show(f2); transaction1.commit(); } break; case R.id.button3: if(b3.isPressed()){ FragmentTransaction transaction2 = getSupportFragmentManager() .beginTransaction(); transaction2.hide(f1); transaction2.hide(f2); transaction2.show(f3); transaction2.commit(); } break; } } } public class FirstFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.first, container, false); return view; } } public class SecondFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.second, container, false); return view; } } public class Third extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.third, container, false); return view; } } </code></pre> <p>Layout file : <strong>main.xml</strong></p> <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" &gt; &lt;Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="Button 1" /&gt; &lt;Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_toRightOf="@+id/button1" android:text="Button 2" /&gt; &lt;Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button2" android:layout_toRightOf="@+id/button2" android:text="Button 3" /&gt; &lt;LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:orientation="horizontal" &gt; &lt;fragment android:id="@+id/first" android:layout_width="match_parent" android:layout_height="wrap_content" class="com.fragmentworks.FirstFragment" /&gt; &lt;fragment android:id="@+id/second" android:layout_width="match_parent" android:layout_height="wrap_content" class="com.fragmentworks.SecondFragment" /&gt; &lt;fragment android:id="@+id/third" android:layout_width="match_parent" android:layout_height="wrap_content" class="com.fragmentworks.Third" /&gt; &lt;/LinearLayout&gt; </code></pre> <p></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload