2013-10-02 22 views
5

Tworzę aplikację Android z paska czynności kartę cały kod, jeśli jest idealny, ale mam problem z metodą zastępowania fragmentu, jak naprawić ten błąd może ktoś mi pomóc?hwo naprawić błąd metody wymiany?

wyświetlacz System:

Sposób wymiany (int fragment) w rodzaju FragmentTransaction nie dotyczy argumentów (INT, fragment)

StartActivity.java

package com.devlebactionbartab; 

import android.net.wifi.p2p.WifiP2pManager.ActionListener; 
import android.os.Bundle; 
import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.Activity; 
import android.app.FragmentTransaction; 
import android.drm.DrmStore.Action; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.view.Menu; 

public class StartActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_start); 


     ActionBar actionbar = getActionBar(); 
     actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionbar.setTitle("Tabbed Layout"); 


     ActionBar.Tab Frag1Tab = actionbar.newTab().setText("Fragment1"); 
     ActionBar.Tab Frag2Tab = actionbar.newTab().setText("Fragment2"); 
     ActionBar.Tab Frag3Tab = actionbar.newTab().setText("Fragment3"); 
     ActionBar.Tab Frag4Tab = actionbar.newTab().setText("Fragment4"); 

     Fragment fragment1 = new Fragment_1(); 
     Fragment fragment2 = new Fragment_2(); 
     Fragment fragment3 = new Fragment_3(); 
     Fragment fragment4 = new Fragment_4(); 

     Frag1Tab.setTabListener(new MyTabsListener(fragment1)); 
     Frag2Tab.setTabListener(new MyTabsListener(fragment2)); 
     Frag3Tab.setTabListener(new MyTabsListener(fragment3)); 
     Frag4Tab.setTabListener(new MyTabsListener(fragment4)); 

     actionbar.addTab(Frag1Tab); 
     actionbar.addTab(Frag2Tab); 
     actionbar.addTab(Frag3Tab); 
     actionbar.addTab(Frag4Tab); 

    } 


class MyTabsListener implements ActionBar.TabListener{ 

    public Fragment fragment; 

    //constractor 
    public MyTabsListener (Fragment fragment){ 

     this.fragment = fragment; 
    } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 
     ft.replace(R.id.fragment_container, fragment); 
    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 


} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.start, menu); 
     return true; 
    } 

} 

Odpowiedz

3
android.app.FragmentTransaction.replace(int id,android.app.Fragment fragment); 

Twoja metoda szuka fragmentu pochodzącego z pliku android.app.Fragment, zaimportowałeś android.suppo rt.v4.app.Fragment. Moją sugestią jest zaimportowanie także FragmentTransaction z obsługi v4.

kroki:

DELETE: import android.app.FragmentTransaction;

ADD: import android.support.v4.app.FragmentTransaction;

Idź do eclipse-> Project-> clean -> czysty wszystko.

v4 support FragmentTransaction

+0

@ wtsang02 Zrobiłem tak, jak powiedziałeś, importuję import ** android.support.v4.app.FragmentTransaction; ** ale nadal ten sam błąd – LebDev

+0

usunąć importowanie FragmentTransaction i Fragment, dodać import v4, wyczyścić. – wtsang02

+0

co masz na myśli przez dodanie importu v4, czyste? Próbowałem po prostu zaimportować android.v4.app, ale to mi błąd – LebDev

3

miałem sam problem, ponieważ był przy getFragmentManager(). Jeśli używasz getSupportFragmentManager(). to rozwiązałoby problem.

1

Mieszacie nowsze typy wsparcia fragmentów z klasami wsparcia. Zastąpić te linie:

import android.app.Fragment; 

z import android.support.v4.app.Fragment;

import android.app.FragmentManager;
z import android.support.v4.app.FragmentManager;

Następnie rozszerzyć android.support.v4.app.FragmentActivity zamiast aktywności i zmiany połączeń jak getFragmentManager() z getSupportFragmentManager() i podobnie do innych metod, z których możesz korzystać.

+0

'import android.support.v4.app.Fragment' i inne wszystko naprawiono dla mnie, gdy próbowałem pobrać elementItem na adapterze fragmentu – mewc

Powiązane problemy