0

Пожалуйста, помогите! У меня есть три фрагмента, которые должны отображаться на странице галереи, но мое приложение продолжает сбой. Это gallery.java страницаМОИ фрагменты не показывались

import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentManager; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 


public class Gallery extends Activity { 
Fragment fragmenta; 
Fragment fragmentb; 
Fragment fragmentc; 
FragmentManager fm; 
String fraga; 
String fragb; 
String fragc; 
FragmentTransaction ft; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gallery); 
    fm = getFragmentManager(); 
    fragmenta=new FragmentA(); 
    fragmentb=new FragmentB(); 
    fragmentc=new FragmentC(); 
    fragmenta=(Fragment)getFragmentManager().findFragmentById(R.layout.fragmenta); 
    fragmentb=(Fragment)getFragmentManager().findFragmentById(R.layout.fragmentb); 
    fragmentc=(Fragment)getFragmentManager().findFragmentById(R.layout.fragmentc); 

    // getFragmentManager().beginTransaction().add(R.id.fragment,fragmenta,fraga).commit(); 
    // getFragmentManager().beginTransaction().add(R.id.fragment2,fragmentb,fragb).commit(); 
    // getFragmentManager().beginTransaction().add(R.id.fragment3,fragmentc,fragc).commit(); 

    ft=fm.beginTransaction(); 
    ft.add(R.id.fragment, new FragmentA()); 
    ft.add(R.id.fragment2, new FragmentB()); 
    ft.add(R.id.fragment3, new FragmentC()); 
    ft.commit(); 





} 

}

это осколочная а. Java

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

Это осколочная b.java

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

это осколочная c.java

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

пожалуйста, помогите

есть три фрагмента, и мне нужно три из них для показа на странице галереи. код XML в порядке, поэтому я не думаю, чтобы добавить его здесь

мой gallery.xml

<?xml version="1.0" encoding="utf-8"?> 

<fragment 
    android:layout_width="350dp" 
    android:layout_height="70dp" 
    android:name="android.app.DialogFragment" 
    android:id="@+id/fragment" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="30dp" /> 

<fragment 
    android:layout_width="320dp" 
    android:layout_height="250dp" 
    android:name="android.app.DialogFragment" 
    android:id="@+id/fragment2" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<fragment 
    android:layout_width="350dp" 
    android:layout_height="70dp" 
    android:name="android.app.DialogFragment" 
    android:id="@+id/fragment3" 
    android:layout_below="@+id/fragment2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="30dp" /> 

+0

Можете ли вы отправить сообщение «logcat» с крахом? – DigitalNinja

+0

В моем логическом не было никаких ошибок, idk why – Aria

+0

Хорошо, я думаю, может быть, так как у вас есть три фрагмента, созданных здесь 'fragmenta = new FragmentA();' тогда вам не нужно их снова «new» при добавлении здесь ' ft.add (R.id.fragment, новый FragmentA()); '. Попробуйте изменить эти строки как 'ft.add (R.id.fragment, fragmenta);' и сделать то же самое для фрагментов b и c. – DigitalNinja

ответ

0

Попробуйте

<?xml version="1.0" encoding="utf-8"?> 
<fragment 
android:layout_width="350dp" 
android:layout_height="70dp" 
android:name="com.example.yourApp.FragmentA" 
android:id="@+id/fragment" 
android:layout_alignParentTop="true" 
android:layout_centerHorizontal="true" 
android:layout_marginTop="30dp" /> 

<fragment 
android:layout_width="320dp" 
android:layout_height="250dp" 
android:name="com.example.yourApp.FragmentB" 
android:id="@+id/fragment2" 
android:layout_centerVertical="true" 
android:layout_centerHorizontal="true" /> 

<fragment 
android:layout_width="350dp" 
android:layout_height="70dp" 
android:name="com.example.yourApp.FragmentC" 
android:id="@+id/fragment3" 
android:layout_below="@+id/fragment2" 
android:layout_centerHorizontal="true" 
android:layout_marginTop="30dp" /> 
+0

это не сработало, внеся ли я какие-либо изменения в gallery.java после этого? – Aria

+0

Какая ошибка дает и является ли макет, который вы разместили в макете? – Want2bExpert

+0

В каком макете находятся эти фрагменты. Не могли бы вы разместить свой полный макет галереи? – Want2bExpert

Смежные вопросы