2017-04-26 3 views
-1

Ich möchte Sie zu AppCompatActivity (generiert von Android Studio) und benutzerdefinierten Fragmenten fragen. Ich habe eine AppCompatActivity mit dem eingebauten Generator im Android Studio gemacht. Aber ich möchte meine benutzerdefinierten Klassen verwenden, also habe ich 3 Layout-XML und 3 Klassen gemacht. ZB:Android-Fragmente in AppCompatActivity-Klasse

public class ThermoMeter extends Fragment{ 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.tab1thermometer, container, false); 
return rootView; 

In meiner Haupttätigkeit Ich benutze sie wie die folgende:

public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 
     switch (position) { 
      case 0: 
       ThermoMeter tabThermoMeter = new ThermoMeter(); 
       return tabThermoMeter; 
      case 1: 
       RealTimeThermoChart rtThermoChart = new RealTimeThermoChart(); 
       return rtThermoChart; 
      case 2: 
       HistoryChart historyChart = new HistoryChart(); 
       return historyChart; 
      default: 
       return null; 
     } 
    } 

Ich möchte Sie bitten, dass, wie kann ich meine benutzerdefinierten Klassen hinzufügen (die von Fragment erstreckt sind) bis R .id oder ich weiß nicht, wo man verwendet: getFragmentManager().findFragmentById(R.id.fragment_id); ? Ich muss wissen, welches die aktuellen aktiven Fragmente in meiner Aktivitätsklasse sind, und ich muss die Textansichten im aktiven Fragment mit neuen Daten aus der Aktivitätsklasse aktualisieren. Kannst du mir bitte Helfen?

Antwort

0

Zu Ihrer Aktivität

public void ThermoMeter(){ 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    Fragment_ThermoMeter fThermoMeter = new Fragment_ThermoMeter(); 
    fragmentTransaction.add(R.id.fragment_container, fThermoMeter, "ThermoMeter"); 
    fragmentTransaction.commit(); 

} 

gleiche Sache für jedes Fragment .. danken rufen Sie die Methode, die Sie :) wollen

an Ihrem xml layout_activity

<FrameLayout 
    android:id="@+id/fragment_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:layout_below="@+id/bg1" 
    android:layout_alignParentStart="true"> 
</FrameLayout> 
+0

Danke, ich werde es überprüfen ! Wo soll ich Thermometer() in meiner Tätigkeit nennen? Anstelle der generierten Methode get? – user1036555

+0

Ja, Sie sollten in Ihrer Aktivität create aufrufen, dann wird Fragment namens ThermoMeter angezeigt –