use 

findViewById(R.id.fragment).setVisibility(View.GONE);

On Wednesday, March 9, 2011 3:34:31 PM UTC+5:30, clemp6r wrote:
>
> Hi, 
>
> I can't remove a Fragment that was added in an XML layout file, using 
> a FragmentTransaction. I don't understand why, I probably 
> misunderstood something and I would appreciate some explanations. 
>
> ---- 
> Here's a simple code to demonstrate my problem : 
>
>     ** Main layout, main.xml: 
>     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ 
> android" 
>         android:orientation="vertical" 
> android:layout_width="fill_parent" android:layout_height="fill_parent" 
>         android:id="@+id/root" 
>         > 
>         <TextView android:id="@+id/hello_view" 
>             android:layout_width="fill_parent" 
>             android:layout_height="wrap_content" 
>             android:text="@string/hello" 
>         /> 
>
>         <fragment android:name="test.fragments.FragmentA" 
>             android:id="@+id/fragment_a" 
>             android:layout_width="fill_parent" 
>             android:layout_height="wrap_content" 
>         /> 
>     </LinearLayout> 
>
>     ** Main activity: 
>     public class TestFragmentsActivity extends Activity { 
>
>         @Override 
>         public void onCreate(Bundle savedInstanceState) { 
>             super.onCreate(savedInstanceState); 
>             setContentView(R.layout.main); 
>
>             TextView helloView = (TextView) 
> findViewById(R.id.hello_view); 
>             helloView.setOnClickListener(new OnClickListener() { 
>
>                 @Override 
>                 public void onClick(View v) { 
>                     FragmentManager fragmentManager = 
> getFragmentManager(); 
>                     FragmentTransaction transaction = 
> fragmentManager.beginTransaction(); 
>   
> transaction.remove(fragmentManager.findFragmentById(R.id.fragment_a)); 
>                     transaction.commit(); 
>                 } 
>             }); 
>         } 
>     } 
>
>     ** My fragment class: 
>     public class FragmentA extends Fragment { 
>
>         @Override 
>         public View onCreateView(LayoutInflater inflater, ViewGroup 
> container, Bundle savedInstanceState) { 
>             return inflater.inflate(R.layout.layout_a, container, 
> false); 
>         } 
>     } 
>
>     ** Fragment layout, layout_a.xml: 
>     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ 
> android" android:layout_width="match_parent" 
> android:layout_height="match_parent"> 
>         <TextView android:text="TextView A" android:id="@+id/ 
> textView1_a" android:layout_width="wrap_content" 
> android:layout_height="wrap_content"></TextView> 
>     </LinearLayout> 
> ---- 
>
> When I click on the text view, the fragment should be removed, but 
> nothing seems to happen. If I click again, the application crashes 
> with the following error messages: 
>
>     03-09 09:48:09.248: ERROR/AndroidRuntime(1222): 
> java.lang.NullPointerException 
>     03-09 09:48:09.248: ERROR/AndroidRuntime(1222):     at 
> android.app.BackStackRecord.remove(BackStackRecord.java:365) 
>     03-09 09:48:09.248: ERROR/AndroidRuntime(1222):     at 
> test.fragments.TestFragmentsActivity 
> $1.onClick(TestFragmentsActivity.java:28) 
>
>
> Maybe it's not possible to remove fragments that were added using XML 
> layouts? 
>
> Thanks in advance.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to