类型不匹配无法从Fragment转换为fragment

时间:2014-10-11 05:26:15

标签: android eclipse android-fragments

我现在收到此错误:

"type missmatch cannot convert from FragmentA to fragment". 

在每个If语句下

    if(arg0==0)
    {
        fragment=new FragmentA(); 
    }

if(arg0==0)
    {
        fragment=new FragmentB(); 
    }

if(arg0==0)
    {
        fragment=new FragmentC(); 
    }

所以我想知道它是否与我的导入文件有关?因为我一直遇到麻烦。我将列出导入文件,然后列出相关代码。可以是方法或导入不确定哪个。

好的,这里是完整的代码:

    import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class Main_activity extends ActionBarActivity implements TabListener {



    public static final String PREFS_NAME = "MyPreferncesfile";

    ViewPager viewPager; 
    ActionBar actionBar; 
    @Override
    public void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_main);

        viewPager=(ViewPager) findViewById(R.id.pager);
        actionBar=getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        ActionBar.Tab tab1=actionBar.newTab();
        tab1.setText("Tab 1");
        tab1.setTabListener(this); 

        ActionBar.Tab tab2=actionBar.newTab();
        tab2.setText("Tab 2");
        tab2.setTabListener(this); 

        ActionBar.Tab tab3=actionBar.newTab();
        tab3.setText("Tab 3");
        tab3.setTabListener(this); 

        actionBar.addTab(tab1);
        actionBar.addTab(tab2);
        actionBar.addTab(tab3);
     }
    public void onTabReselected1(Tab tab, FragmentTransaction ft) {

        Log.d("VIVZ", "onTabReselected at "+" position "+tab.getPosition()+" name "+tab.getText());


    }

    public void onTabSelected1(Tab tab, FragmentTransaction ft) {
        Log.d("VIVZ", "onTabSelected at "+" position "+tab.getPosition()+" name "+tab.getText());

    }

    public void onTabUnselected1(Tab tab, FragmentTransaction ft) {
        Log.d("VIVZ", "onTabUnselected at "+" position "+tab.getPosition()+" name "+tab.getText());

    }



    class MyAdapter extends FragmentPagerAdapter 
    {

        public MyAdapter(FragmentManager fm) {
            super(fm);
            // TODO Auto-generated constructor stub
        }

    public Fragment getItem(int arg0) {
        Fragment fragment=null; 
        if(arg0==0)
        {
            fragment=new FragmentA(); 
        }
        if(arg0==1)
        {
            fragment=new FragmentB(); 
        }
        if(arg0==2) 
        {
            fragment=new FragmentA(); 
        }
        return fragment;
    }


        @Override
        public int getCount() {
            return 3;
        } 
    }

1 个答案:

答案 0 :(得分:0)

检查扩展片段的所有类中的导入,因为android.app.Fragmentandroid.support.v4.app.Fragment不同,因此冲突

可能会发生这种情况,因为您的FragmentA类可能正在扩展片段(即可能正在导入)旧的android.app.Fragment,而您发布的那个正在从导入android.support.v4.app.Fragment扩展片段类; < / p>


请参阅:Difference between android.app.Fragment and android.support.v4.app.Fragment