當寫這段代碼我有一個常量的錯誤,它說:「類型不匹配:不能從片段_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);
}
}
什麼是Fragment_1? – Tarun
該問題可能在您的Fragment_1類中。它可能不會繼承正確的Fragment父類的形式。 –
@Tarun它只是一個膨脹我爲它創建的佈局XML的類。如果您願意,我可以將其添加到帖子中。 – user2517002