2013-06-24 50 views
-1

當寫這段代碼我有一個常量的錯誤,它說:「類型不匹配:不能從片段_1轉換爲片段」像這樣「Fragment Fragment1 = new Fragment_1();」。我相信這是導致我的代碼片段在代碼運行時不會出現的問題,因爲代碼不知道與監聽器相對應的代碼。簡單的ActionBarSherlock錯誤與片段

import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.app.ActionBar.Tab; 
import com.actionbarsherlock.app.SherlockFragmentActivity; 

import android.os.Bundle; 
import android.app.Activity; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.app.Fragment; 
import android.view.Menu; 

public class MainActivity extends SherlockFragmentActivity { 

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

    ActionBar actionbar = getSupportActionBar(); 
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionbar.setTitle("TabApp"); 

    ActionBar.Tab Frag1Tab = actionbar.newTab().setText("Tab 1"); 
    ActionBar.Tab Frag2Tab = actionbar.newTab().setText("Tab 2"); 
    ActionBar.Tab Frag3Tab = actionbar.newTab().setText("Tab 3"); 

    Fragment Fragment1 = new Fragment_1(); 
    Fragment Fragment2 = new Fragment_2(); 
    Fragment Fragment3 = new Fragment_3(); 

    Frag1Tab.setTabListener(new MyTabsListener(Fragment1)); 
    Frag2Tab.setTabListener(new MyTabsListener(Fragment2)); 
    Frag3Tab.setTabListener(new MyTabsListener(Fragment3)); 

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



} 

class MyTabsListener implements ActionBar.TabListener { 
    public Fragment fragment; 

    public MyTabsListener(Fragment fragment){ 
     this.fragment = fragment; 
    } 


    @Override 
    public void onTabSelected(Tab tab, android.support.v4.app.FragmentTransaction ft) { 
     // TODO Auto-generated method stub 
     ft.replace(R.id.fragment_container, fragment); 

    } 

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

    } 

    @Override 
    public void onTabReselected(Tab tab, android.support.v4.app.FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 


} 

}

這裏是Fragment_1類:

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

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

什麼是Fragment_1? – Tarun

+1

該問題可能在您的Fragment_1類中。它可能不會繼承正確的Fragment父類的形式。 –

+0

@Tarun它只是一個膨脹我爲它創建的佈局XML的類。如果您願意,我可以將其添加到帖子中。 – user2517002

回答

1

是Fragment_1從android.support.v4.app.Fragment(或SherlockFragment)繼承?還是它從android.app.Fragment繼承?它應該是android.support.v4.app.Fragment

+0

修正了這個問題。非常感謝。 – user2517002