标签: fragmentpageradapter

将片段实例保留在FragmentPagerAdapter中

是否可以保留为FragmentPagerAdapter内部创建的每个片段的实例FragmentPagerAdapter

像这样的东西:

@Override
    public Object instantiateItem(ViewGroup container, int position)
        switch(position){
        case 0:
            fragment0 = super.instantiateItem(container, position);
            return fragment0;
        case 1:
            fragment1 = super.instantiateItem(container, position);
            return fragment1;
        default:
            return super.instantiateItem(container, position);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我会遇到内存问题吗?

这个想法是MyFragmentPagerAdapter.fragment0为了获得对片段的引用.

android android-fragments fragmentpageradapter

3
推荐指数
1
解决办法
2771
查看次数

GetItem(int)返回FragmentPagerAdapter中的Listfragment

我正在开发一个由3个List片段组成的Android应用程序.我正在使用一个ViewPager对象让用户在片段之间滑动.我在片段中使用了相同的代码.但是当我改变它以使用列表片段时,我收到了一个错误

the return type is incompatible with FragmentPagerAdapter.getItem(int)
Run Code Online (Sandbox Code Playgroud)

我被困在这里几个小时.请帮忙..

我的片段活动

public class PageViewActivity extends FragmentActivity {
MyPageAdapter pageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_page_view);

    List<ListFragment> fragments = getFragments();

    pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
    pager.setAdapter(pageAdapter);

}

private List<ListFragment> getFragments(){
    List<ListFragment> fList = new ArrayList<ListFragment>();

    fList.add(AllMsgFragment.newInstance("Fragment 1"));
    fList.add(ErrorMsgFragment.newInstance("Fragment 2"));
    fList.add(SuccessMsgFragment.newInstance("Fragment 3"));

    return fList;
}
Run Code Online (Sandbox Code Playgroud)

和我的FragmentPageAdapter

class MyPageAdapter extends FragmentPagerAdapter {
private List<ListFragment> fragments;

public MyPageAdapter(FragmentManager fm, List<ListFragment> fragments) {
    super(fm);
    this.fragments = fragments;
} …
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmentpageradapter android-listfragment

3
推荐指数
1
解决办法
3791
查看次数

使用FragmentPagerAdapter以编程方式从Fragment更改选项卡

我正在尝试让我的应用从标签1更改为标签3.标签位于自定义TabsPagerAdapterextends FragmentPagerAdapter.

我试图更改标签喜欢这个,但它导致NullPointerException.机制是不同的FragmentPagerAdapter

TabHost host = (TabHost) getActivity().findViewById(android.R.id.tabhost);
host.setCurrentTab(2);
Run Code Online (Sandbox Code Playgroud)

java android android-tabhost android-fragments fragmentpageradapter

3
推荐指数
1
解决办法
2468
查看次数

如何动态创建Fragment寻呼机适配器

我无法为每个选项卡创建动态布局,我可以通过此构造函数动态创建选项卡(公共MyPagerAdapter(FragmentManager fm,int noOfTabs)),但是不要为每个应创建的每个片段创建每个选项卡的视图. dyanmic.

public class MyPagerAdapter extends FragmentPagerAdapter 
{

        private final String[] TITLES = { "Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
                "Top New Free", "Trending" };

        int noOfTabs;

        **public MyPagerAdapter(FragmentManager fm , int noOfTabs) 
        {           
            super(fm);
            this.noOfTabs = noOfTabs;
        }**

        /*public MyPagerAdapter(FragmentManager fm) 
        {
            super(fm);
        }*/

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }

        @Override
        public int getCount() {
            return noOfTabs; //TITLES.length;
        }

        @Override
        public Fragment getItem(int position) {
            return SuperAwesomeCardFragment.newInstance(position);
        }

    } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmentpageradapter

3
推荐指数
1
解决办法
6510
查看次数

为什么Android Facebook界面不能与Fragments一起使用?

我正在将一些Android Facebook代码从一个转换Activity为一个Fragment.在切换之前一切正常,但现在onComplete()回调没有被执行.

Facebook代码不能与Fragments一起使用,或者我做错了什么?

这是原始代码(在a中SherlockActivity):

if (!mFacebook.isSessionValid()) {
    mFacebook.authorize(MyActivity.this, permissions, new DialogListener() {
        @Override
        public void onComplete(Bundle values) { ... }    // CALLED AS EXPECTED
    }
}
Run Code Online (Sandbox Code Playgroud)

这是新代码(在SherlockFragment中):

if (!mFacebook.isSessionValid()) {
    mFacebook.authorize(getActivity(), permissions, new DialogListener() {
        @Override
        public void onComplete(Bundle values) { ... }    // DOES NOT GET CALLED
    }
}
Run Code Online (Sandbox Code Playgroud)

Activity和Fragment都包含与Facebook要求相同的onActivityResult():

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mFacebook.authorizeCallback(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助! …

android facebook-android-sdk android-fragments actionbarsherlock fragmentpageradapter

2
推荐指数
2
解决办法
4970
查看次数

Android在FragmentPagerAdapter中更改片段顺序

我在FragmentPagerAdapter中有大约20个片段,它们包含一个列表,它从中拾取片段,因此不会重新创建片段.

private List<TitledFragment> fragments;

public SectionsPagerAdapter(FragmentManager fm) {
    super(fm);

    this.fragments = new ArrayList<TitledFragment>();
}

@Override
public Fragment getItem(int i) {
    return fragments.get(i).getFragment();
}

@Override
public int getCount() {
    return fragments.size();
}

@Override
public CharSequence getPageTitle(int position) {
   return fragments.get(position).getTitle();
}

public synchronized List<TitledFragment> getFragments() {
    return fragments;
}


public synchronized void addFragment(TitledFragment fragment) {
    fragments.add(fragment);
    notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

FragmentPagerAdapter被设置为ViewPager的适配器,之后我重新排序片段(洗牌仅用于测试)

Collections.shuffle(mSectionsPagerAdapter.getFragments());
mSectionsPagerAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

由于某种原因,只有标题的顺序被改变,即使它为getItem返回不同的片段,因为顺序是不同的.为什么这样,我怎么能绕过它呢?

java android android-fragments android-viewpager fragmentpageradapter

2
推荐指数
1
解决办法
4518
查看次数

当我从片段滑动到另一个时,如何进行事件

这是我的代码关于在6个片段之间滑动,我想做一个事件,当我从一个片段刷到另一个从加载一些东西,所以请任何帮助我怎么能这样做??? ,,和哪里我可以把代码,我想到进度对话框启动它在函数获取标题并在片段的开头取消它是否适用?这是我的代码:

             package com.example.my_finalswipe;
                 import java.util.List;
                 import java.util.Locale;
            import java.util.Vector;
            import android.os.Bundle;
            import android.support.v4.app.Fragment;
            import android.support.v4.app.FragmentActivity;
            import android.support.v4.app.FragmentManager;
            import android.support.v4.app.FragmentPagerAdapter;
            import android.support.v4.view.ViewPager;
            import android.view.LayoutInflater;
            import android.view.View;
            import android.view.ViewGroup;

             public class MainActivity extends FragmentActivity {


            SectionsPagerAdapter mSectionsPagerAdapter;


            ViewPager mViewPager;
            List<Fragment> fragments ;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                // Create the adapter that will return a fragment for each of the three
                // primary sections of the app.
               fragments = new Vector<Fragment>();

                        fragments.add(Fragment.instantiate(this, FragmentOne.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentTwo.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentThree.class.getName()));
                        fragments.add(Fragment.instantiate(this, …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager fragmentpageradapter

2
推荐指数
1
解决办法
2822
查看次数

从fragmentActivity刷新片段UI

我想从FragmentActivity中更改片段中的ImageView(在代码中创建).(XML中没有片段和标记).

从FragmentActivity扩展的MainActivity和从GooglePlayServicesClient.ConnectionCallbacks实现的:

...
FragmentAdapter mAdapter;
ViewPager mPager;
...

public void onCreate(Bundle savedInstanceState){
    ...
    FragmentManager fm = getSupportFragmentManager();
    mAdapter = new FragmentAdapter(fm);
    mPager.setAdapter(mAdapter);
    ...}

@Override
public void onConnected(Bundle connectionHint){
//*** I want to change a ImageView on Fragment1 here
}
Run Code Online (Sandbox Code Playgroud)

从FragmentPagerAdapter扩展的FragmentAdapter:

...
private FragmentManager mFragmentManager;

public FragmentAdapter(FragmentManager fm){
    super(fm);
}

@Override
public Fragment getItem(int pos){
// String name = makeFragmentName(R.id.mainPager, pos);
// Fragment fragmentObject = mFragmentManager.findFragmentByTag(name);
Fragment fragmentObject = null;

switch(pos){
    case 0:
        fragmentObject = new Fragment1();
        break;
    ...
}

return …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-fragmentactivity

2
推荐指数
1
解决办法
1万
查看次数

为什么我应该使用FragmentPagerAdapter而不是FragmentStatePagerAdapter?

我一直在寻找它,而我发现的只是它们之间的区别。那不是重点。

如果在中使用FragmentStatePagerAdapterViewPager最终将完成与相同的操作FragmentPagerAdapter,但消耗的内存更少。如果是这样,我为什么要使用FragmentPagerAdapter

使用的好处是FragmentPagerAdapter什么?

android android-viewpager fragmentpageradapter fragmentstatepageradapter

2
推荐指数
1
解决办法
1363
查看次数

在FragmentPagerAdapter中没有调用getPageTitle

我有一个FragmentPagerAdapter处理获取当前片段,跟踪选项卡数量和设置每个选项卡的选项卡标题.

public class ClothingSectionsPagerAdapter extends FragmentPagerAdapter {

    private String[] mCategories;

    public ClothingSectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public void setContext(Context context) {
        mCategories = context.getResources().getStringArray(R.array.category);
    }

    @Override
    public Fragment getItem(int position) {
        return ClothingCategoryFragment.newInstance(mCategories[position]);
    }

    @Override
    public int getCount() {
        return mCategories.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Log.d("getPageTitle", mCategories[position]);
        return mCategories[position];
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我实现了这个类.

ClothingSectionsPagerAdapter sectionsPagerAdapter =
                new ClothingSectionsPagerAdapter(getSupportFragmentManager());

sectionsPagerAdapter.setContext(this);
mViewPager.setAdapter(sectionsPagerAdapter);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
mViewPager.setCurrentItem(startingFragmentPosition);
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的应用程序时.标签存在,但它们是无标题.getPageTitle永远不会调用该方法.我该如何解决?

java android fragmentpageradapter android-tablayout

2
推荐指数
1
解决办法
1537
查看次数