-1

在编写此代码时,我遇到一个持续错误,它在“Fragment Fragment1 = new Fragment_1();”这样的三行上显示“类型不匹配:无法从 Fragment_1 转换为 Fragment”。我相信这也是导致我的片段在代码运行时不出现的问题,因为代码不知道什么对应于监听器。

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);
    }
}
4

1 回答 1

1

Fragment_1 是否继承自 android.support.v4.app.Fragment(或 SherlockFragment)?还是继承自 android.app.Fragment?它应该是 android.support.v4.app.Fragment

于 2013-06-24T18:12:16.140 回答