我现在收到此错误:
"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;
}
}
答案 0 :(得分:0)
android.app.Fragment
与android.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