2016-07-18 25 views
1

Ich möchte Fragment von meiner Tätigkeit öffnen. Das Problem ist, dass das Fragment nie erscheint. Diese ist der Teil meiner Tätigkeit:Fragment aus Aktivität öffnen?

btn_opciones.setOnValueChangedListener(new ToggleButton.OnValueChangedListener() { 
    @Override 
    public void onValueChanged(int position) { 
     if(position == 1){ 
      OrdenarComplejosFragment ordenarComplejosFragment = new OrdenarComplejosFragment(); 
      FragmentManager manager = getSupportFragmentManager(); 
      FragmentTransaction ft = manager.beginTransaction(); 

      ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); 
      ft.add(ordenarComplejosFragment, null); 
      ft.commit(); 
     } 

    } 
}); 

Und das ist mein Fragment, das ich will offen und zeigen:

public class OrdenarComplejosFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_ordenar_complejos, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     //do your stuff for your fragment here 
    } 
} 

Die xml des Fragments oben:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="HOLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 
     android:id="@+id/textView35" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

I Ich weiß nicht, warum das Fragment nie angezeigt wird. Der Knopf funktioniert gut.

Antwort

0

Versuchen Sie es mit einer anderen "add" -Methode. Die Verwendung der ID, die eine Ansichts-ID enthält, gibt an, wo das Fragment im Layout der vorhandenen Aktivität angezeigt werden soll.

ft.add(R.id.fragment_frame, ordenarComplejosFragment); 

Fragmente sind immer in einer Aktivität enthalten. Wenn Ihre Aktivität keinen Container/Speicherort für das Fragment bereitstellt, müssen Sie das Layout überdenken oder erwägen, diese neue Ansicht mit einer separaten Aktivität zu öffnen.

+0

R.id.fragment_frame ist die ID einer in activity_main.xml.? Das Problem ist, dass ich das Fragment nur auf Klick zeigen möchte. Nein immer –

+0

R.id.fragment_frame ist die ID einer Containeransicht (z. B. RelativeLayout). Lassen Sie uns eins auf einmal arbeiten. Erhält dieser Code das Fragment auf dem Bildschirm sichtbar? – FishStix

+0

"Keine Ansicht gefunden für ID 0x7f0e0167" Das Problem ist, dass ich nicht weiß, Hexe ID muss ich setzen ft.add (R.id.container_fragment_ordenar_complejos, ordenarComplejosFragment); Ich habe die ID des relativen Layouts des Fragments xml angegeben. Ich meine, ich weiß nicht, wie ich einen Conotainer/Location in meiner Aktivität bereitstellen kann, sorry dafür, bitte lassen Sie mich ein Beispiel –

Verwandte Themen