Android Comment appeler Fragment de mon Activité Principale
je suis très nouveau à développement android.
dans mon cas, j'ai une activité principale et un fragment créé.L'activité principale de deux touches.
quand je clique sur le bouton, mon fragment doit charger .comment puis-je y parvenir?
Mainactivity .XML
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fragment 2"
android:id="@+id/fragment_button_2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fragment 1"
android:id="@+id/fragment_button_1"
android:layout_above="@+id/fragment_button_2"
android:layout_alignLeft="@+id/fragment_button_2"
android:layout_alignStart="@+id/fragment_button_2"
android:layout_marginBottom="33dp" />
</RelativeLayout>
Activité principale .java
package com.bentgeorge.fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button fragment_btn_1;
private Button fragment_btn_2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragment_btn_1 = (Button) findViewById(R.id.fragment_button_1);
fragment_btn_2 = (Button) findViewById(R.id.fragment_button_2);
}
@Override
public void onClick(View v) {
Fragment1 frag = new Fragment1();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.mainlayout,frag,"Test Fragment");
transaction.commit();
}
}
fragment_fragment1.xml
<FrameLayout 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"
tools:context="com.bentgeorge.fragment.Fragment1">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>
Fragment1.java
package com.bentgeorge.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* A simple {@link Fragment} subclass.
*/
public class Fragment1 extends Fragment {
public Fragment1() {
//Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_fragment1, container, false);
}
}
Pas fait beaucoup de codes que je suis confondu avec internet tutoriels disponibles.
Merci de m'aider à résoudre ce
Merci & en ce qui Concerne,
Mise à jour:
j'ai fait quelques modifications et mon fragment devient chargé maintenant. ut les boutons sont encore visibles . Comment puis-je masquer les boutons
OriginalL'auteur bentech4u | 2016-06-06
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
S'il vous plaît changer votre MainActivity comme ceci:
Changer votre activity_main.xml comme ceci:
Merci de créer un xml fragment_main.xml:
Également créer un fragment comme MainFragment:
Espère que cela vous aide. Si vous aviez des questions, laissez-moi savoir.
j'ai créé une nouvelle mise en page et mise en page xml est ici paste.fedoraproject.org/375300/05995146
Au lieu de créer un nouveau xml, s'il vous plaît essayer de donner que de l'id de la page principale de l'activité.
MainActivity.java : paste.fedoraproject.org/375310/65208598 activity_main.xml : paste.fedoraproject.org/375312/14652086 Fragment1.java : paste.fedoraproject.org/375313/52086701 fragment_fragment1.xml : paste.fedoraproject.org/375315/65208704 fragment.xml : paste.fedoraproject.org/375316/14652087 voici mon code actuel et je suis trop confus avec tous ces changements.veuillez cosider moi comme un débutant niveau
veuillez écrire le moveToFragment() comme je vous avais donné. Vous n'en avez pas besoin fragment.xml. Au lieu de cela merci de faire comme mon édité réponse. C'est le cas, Veuillez donner l'id de votre RelativeLayout dans activity_main.xml comme fragment_frame.
OriginalL'auteur RIJO RV
en vous onClick() la méthode
où R. id.fragment_frame - rootContainer Id rootView dans MainActivity.java
vous devez utiliser Framelayout pour placer fragment de l'activité.
comme ci-dessous -
activity_layout.xml -
et votre activité MainActivity.java
btw votre fragment semble bon. espérons qu'il saura vous aider.
tout en donnant votre code, j'obtiens ne peut pas résoudre pour "getActivity()" et "addToBackStack"
jeu de certains arrière-plan du fragment de la rootView, sans doute parce que vous ajoutez fragment sur le dessus de l'activité. ou vous pouvez aussi remplacer.(R. id.fragment_frame, de nouvelles Fragment1()).
j'ai essayé avec la transaction".remplacer(R. id.mainlayout,frag,"Test Fragment");" aussi. Même écran. j'ai ajouté de la couleur d'arrière-plan #fff pour l'activité et pas de différence, mais une marge de zone blanche est venu à l'intérieur de mon activité principale
ajouter le fond dans le fragment de 's rootView - <FrameLayout xmlns:android="schemas.android.com/apk/res/android" xmlns:outils="schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="white_color" outils:context="com.bentgeorge.le fragment.Fragment1">
OriginalL'auteur Vikram Bhati
Dans l'ensemble Fragment est un contenu pas le contenant, alors vous avez besoin pour créer un FragmentActivity et ajouter Fragment(Fragment1), et ensuite appeler sur votre onClick(),
Plus d'infos : ici
OriginalL'auteur Sathish Kumar J
utilisation getActivity() à partir du fragment d'accéder à l'activité de fonctions. Si vous souhaitez accéder à des fonctions propres à votre classe d'activité. Fonte de la acticity objet que vous recevez d'abord avant de l'utiliser, voir exemple ci-dessous
OriginalL'auteur J Whitfield
Créer un plus d'activité à dire ExampleFragmentActivity.class et comprennent fragment de balise dans ExampleFragmentActivity de la mise en page dans Framelayout.
example_fragment_activity.xml(modifié)
Dans Onclick méthode de votre MainAcitivity.class
Vous pouvez également inclure un fragment de façon dynamique à l'aide de fragment de manager.
OriginalL'auteur WritingForAnroid
OriginalL'auteur Brinda Rathod