Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 残缺的PageRadapter麻烦和灾难:构造函数未定义_Android_Tabs_Android Actionbar_Android Viewpager - Fatal编程技术网

Android 残缺的PageRadapter麻烦和灾难:构造函数未定义

Android 残缺的PageRadapter麻烦和灾难:构造函数未定义,android,tabs,android-actionbar,android-viewpager,Android,Tabs,Android Actionbar,Android Viewpager,编辑:我重新编写了一些代码,试图克服错误(但现在应用程序在启动时崩溃)。首先,我的类现在扩展了FragmentActivity,这样我就可以访问方法getSupportFragmentManager();。然后,在创建时,我更改了构造函数: mTabsAdapter = new TabsAdapter(this.getSupportFragmentManager(), this, mViewPager); 从那时起,在我的子类中,我更改了代码以反映以下内容: public TabsAdapte

编辑:我重新编写了一些代码,试图克服错误(但现在应用程序在启动时崩溃)。首先,我的类现在扩展了FragmentActivity,这样我就可以访问方法getSupportFragmentManager();。然后,在创建时,我更改了构造函数:

mTabsAdapter = new TabsAdapter(this.getSupportFragmentManager(), this, mViewPager);
从那时起,在我的子类中,我更改了代码以反映以下内容:

public TabsAdapter(FragmentManager fm, Activity activity, ViewPager pager) {
    super(fm);
    mContext = activity;
    mActionBar = activity.getActionBar();
    mViewPager = pager;
    mViewPager.setAdapter(this);
    mViewPager.setOnPageChangeListener(this);
}
正如我所说,它仍然崩溃,现在有什么想法吗?

开始原始问题: 我有以下错误:“构造函数FragmentPagerAdapter(FragmentManager)未定义”*

当我尝试执行以下行时:

super(activity.getFragmentManager())此行紧跟在my
公共选项卡Adapter(Activity Activity,ViewPager pager){
之后,该选项卡扩展了FragmentPagerAdapter

基本上,我正在尝试获取我的8+片段应用程序(8片段,一个包含一组链接到每个片段的ActionBar选项卡的活动[为了简洁起见,这里只显示一个“loginTab]”)

这是我的全部代码:

编辑:我用作参考的页面:

package com.davekelley.polling;
导入java.util.ArrayList;
导入android.app.ActionBar;
导入android.app.ActionBar.Tab;
导入android.app.Activity;
导入android.content.Context;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.Button;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.app.FragmentTransaction;
导入android.support.v4.view.ViewPager;
导入android.support.v4.view.ViewPager.OnPageChangeListener;
公共类轮询扩展了活动{
私有视图寻呼机mViewPager;
私有TabsAdapter mtabsapter;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mViewPager=新的ViewPager(此);
mviewpage.setId(R.id.pager);
setContentView(mViewPager);
最终ActionBar=getActionBar();
设置导航模式(操作栏导航模式选项卡);
bar.setDisplayShowTitleEnabled(假);
bar.setDisplayShowHomeEnabled(假);
MTABS适配器=新选项卡适配器(此为mViewPager);
MTABAdapter.addTab(bar.newTab().setText(“简单”),
LoginFragment.class,null);
MTABAdapter.addTab(bar.newTab().setText(“简单”),
EconFragment.class,null);
MTABAdapter.addTab(bar.newTab().setText(“简单”),
PoliticsFragment.class,null);
如果(savedInstanceState!=null){
bar.setSelectedNavigationItem(savedInstanceState.getInt(“选项卡”,0));
}
}
SaveInstanceState上受保护的无效(束超出状态){
super.onSaveInstanceState(超出状态);
putInt(“tab”,getActionBar().getSelectedNavigationIndex());
}
公共静态类TabsAdapter扩展了FragmentPagerAdapter
实现ActionBar.TablListener、ViewPager.OnPageChangeListener{
私有最终上下文mContext;
私人终审法院;
专用最终查看页面mViewPager;
private final ArrayList mtab=new ArrayList();
静态最终类TabInfo{
私人期末班;
私有最终包args;
TabInfo(类_类,捆绑参数){
clss=_类;
args=_args;
}
}
公共选项卡dapter(活动活动、查看寻呼机){
super(activity.getFragmentManager());
mContext=活动;
mActionBar=activity.getActionBar();
mViewPager=寻呼机;
mViewPager.setAdapter(此);
mViewPager.setOnPageChangeListener(此);
}
public void addTab(ActionBar.Tab选项卡,类cls,Bundle args){
TabInfo=新的TabInfo(clss,args);
tab.setTag(信息);
tab.setTableListener(此);
添加(信息);
mActionBar.addTab(tab);
notifyDataSetChanged();
}
public int getCount(){
返回mTabs.size();
}
公共片段getItem(int位置){
TabInfo=mTabs.get(位置);
返回Fragment.instantiate(mContext,info.clss.getName(),info.args);
}
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
}
已选择页面上的公共无效(内部位置){
mActionBar.setSelectedNavigationItem(位置);
}
公共无效onPageScrollStateChanged(int状态){
}
已选择的公共事务(选项卡,碎片事务ft){
Object tag=tab.getTag();

对于(int i=0;i您需要更改行

public TabsAdapter(Activity activity, ViewPager pager) {
    super(activity.getFragmentManager());


这将提供
android.support.v4.app.FragmentManager
,这是
android.support.v4.app.FragmentPagerAdapter的构造函数所需的
android.app.FragmentManager
。您当前提供的
android.app.FragmentManager
,它是从
活动.getFragmentManager()返回的
。这会导致类型不匹配,这是错误的根本原因。

我已经解决了这个问题。需要大量的解决方案

首先,我必须扩展碎片活动

public class Polling extends FragmentActivity {
然后,在创建我的TabsAdapter时,我必须向这个(FragmentActivity本身)发送一个调用:

然后,在TabsAdapter子类中创建构造函数时,我必须将参数更改为FragmentActivity而不是Activity:

public TabsAdapter(FragmentActivity activity, ViewPager pager) {
    super(activity.getSupportFragmentManager());
最后,我必须更改片段类中的import语句,以反映兼容性库而不是常规片段包的使用:

import android.support.v4.app.Fragment;
现在,我的ViewPager功能正常了。当然,单击每个单独的选项卡
mTabsAdapter = new TabsAdapter(this, mViewPager);
public TabsAdapter(FragmentActivity activity, ViewPager pager) {
    super(activity.getSupportFragmentManager());
import android.support.v4.app.Fragment;