标签: android-pageradapter

如何将数据提供给PagerAdapter

我使用这个例子来使用a ViewPager和a PagerAdapter.但是我如何PagerAdapter从适配器中提供数据,就像CursorAdapter我使用CursorLoader?加载数据一样?

.setAdapter()ViewPager只需要一个PagerAdapter.然后我猜我需要绑定CursorAdapter内部PagerAdapter,但我找不到这样做的方法.

android android-viewpager android-pageradapter

8
推荐指数
1
解决办法
4840
查看次数

禁用在fragmentPagerAdapter中滑动? - android

嘿家伙我有一个fragmentPagerAdapter,里面有3个片段.如何禁用3个片段之间的滑动,以便用户只使用tabview在片段之间进行?

干杯!

private class ViewPagerAdapter extends FragmentPagerAdapter
{
    ArrayList<Fragment> fragments = new ArrayList<>();
    ArrayList<String> tabTitles = new ArrayList<>();

    public ViewPagerAdapter(android.support.v4.app.FragmentManager fragmentManager)
    {
        super(fragmentManager);
    }
    @Override
    public Fragment getItem(int position)
    {
        return fragments.get(position);
    }
    @Override
    public int getCount()
    {
        return fragments.size();
    }
    @Override
    public CharSequence getPageTitle(int position)
    {
        return tabTitles.get(position);
    }
    public void addFragments(Fragment fragment, String titles)
    {
        this.fragments.add(fragment);
        this.tabTitles.add(titles);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments fragmentpageradapter android-pageradapter

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

(R.dimen.padding_medium)无法解析或不是字段?

我正在尝试创建一个新的画廊风格应用程序,因为Gallery已经折旧.

我遇到的主要问题是,当我尝试运行以下代码时,我无法动摇错误"dimen无法解决或不是字段".我已经阅读了一些网站和一些帖子,说它与导入"import com.example.test.R;"有关.然而即使有这样的错误仍然存​​在,如果有人可以帮助它将是惊人的.

Gall.java:

package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;



public class Gall extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_gall);

      ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
      ImgAdapt adapter = new ImgAdapt(this);
      viewPager.setAdapter(adapter);
    }

  }
Run Code Online (Sandbox Code Playgroud)

activity_gall.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

ImgAdapt.java:

package com.example.test;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;




public class ImgAdapt extends PagerAdapter {
Context context;

private …
Run Code Online (Sandbox Code Playgroud)

android gallery android-viewpager android-pageradapter

7
推荐指数
1
解决办法
8400
查看次数

FragmentPagerAdapter不会在Orientation Change上恢复片段

编辑:我发现Activity正在保存实例,但Fragments保存的数据并没有使它保存到Activity savedInstanceState.我将当前时间保存在outState中,但它没有一路向上,因为活动在其SavedInstanceState中没有任何内容,并且如果我将其打印到logcat,则返回'null'. ..

我正在构建一个内置了countup和countdown计时器的应用程序.计时器的基本托管活动是FragmentActivity,它托管一个FragementPagerAdapter,它在代码中膨胀两个片段(我没有给XML中的片段提供id因为它们没有被定义为.xml中的片段.一切都很有效,直到方向改变,然后活动看起来像是失去了与旧片段的联系,只是选择创建新的片段.这意味着任何当前倒计时都会丢失,并且在配置更改时也会丢失所选择的任何时间.我需要保持计数(如果它开始)和当前显示的任何数字....

我知道适配器应该自己处理这些事情,我在OnCreate和OnCreateView中都设置了SetRetainInstance(true).

我把碎片放入Fragment代码,让我知道每当saveInstanceState为非null时,至少我知道发生了什么,但似乎实例总是为NULL,并且它从头开始创建...总是.

其他一些解决方案让我重写了instantiateItem,但似乎它仅用于重置回调,其他人更改Manifest中的设置(不赞成)....其他解决方案对我来说就像我有事情设置正确..但很明显,我在路上搞砸了一些东西.我只是为FragmentActivity,FragementPagerAdapter和一些片段代码提供代码,因为我不想使用可能不是问题的代码来垃圾邮件.

FragmentActivity

public class Timer_Main extends FragmentActivity {
    ViewPager pager;
    Timer_Pager mAdapter;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.timer_pager);

        mAdapter = new Timer_Pager(this, getSupportFragmentManager());

        pager = (ViewPager) findViewById(R.id.timer_pager_display);
        pager.setAdapter(mAdapter);

    }

    public static String getTitle(Context ctxt, int position) {
                // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("pageItem", pager.getCurrentItem());

    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);

    }
}    
Run Code Online (Sandbox Code Playgroud)

FragementPagerAdapter

public class Timer_Pager extends FragmentPagerAdapter{
    Context ctxt = …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity android-pageradapter

7
推荐指数
1
解决办法
5388
查看次数

为什么我在android-pageradapter中遇到stackoverflow错误?

我只是想膨胀一个xml文件并在viewpager页面中显示它.

LLL

logcat的:

致命异常:在Android.wits.CompoundButton的android.graphics.drawable.DrawableContainer.jumpToCurrentState(DrawableContainer.java:179)上的android.graphics.drawable.BitmapDrawable.setAlpha(BitmapDrawable.java:406)中的主要java.lang.StackOverflowError. android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的jumpDrawablesToCurrentState(CompoundButton.java:319) :5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)at android位于android.view的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158).位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup) .java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在Android.view上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158).位于android.view.View.View.jumpDrawablesTo的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的CurrentState(ViewGroup.java:5158),位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java) :5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)at android位于android.view.ViewGroup的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158). android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.ja)上的jumpDrawablesToCurrentState(ViewGroup.java:5158)va:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158) android.view.View.View.View上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)安卓android.view.View上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)的.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup. java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158) android.view.ViewGr

pageradapter类:

public class pageradapter extends PagerAdapter {
    Context mContext;
    LayoutInflater mLayoutInflater;
    List<String> l = MainActivity.list;
    ImageLoader mImageLoader;

    public pageradapter(Context context) {
        mContext = context;

        mLayoutInflater = LayoutInflater.from(mContext.getApplicationContext());

    }

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


    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //  View itemView = mLayoutInflater.inflate(R.layout.img, container, false);
        //   ImageLoader mImageLoader = ImageLoader.getInstance();


        View view = mLayoutInflater.inflate(R.layout.createnew, container);

        //   ImageView imageView = (ImageView) …
Run Code Online (Sandbox Code Playgroud)

stack-overflow android android-layout android-viewpager android-pageradapter

7
推荐指数
1
解决办法
1958
查看次数

Imageview和PagerAdapter

我想在我的ViewPager的每个页面中放置图像(就像一本书).这些图片来自网址列表:

我的适配器看起来像这样:

private class MyPagerAdapter extends PagerAdapter{

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

/**
 * Create the page for the given position.  The adapter is responsible
 * for adding the view to the container given here, although it only
 * must ensure this is done by the time it returns from
 * {@link #finishUpdate()}.
 *
 * @param container The containing View in which the page will be shown.
 * @param position The page position to be instantiated.
 * …
Run Code Online (Sandbox Code Playgroud)

android image android-asynctask android-viewpager android-pageradapter

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

在FragmentStatePagerAdapter中保存状态和还原状态

我用一ViewPagerFragmentStatePageAdapter我的屏幕上我有有许多图像,并享有5页.目前我mViewPager.setOffscreenPageLimit(1);只有当前,前一个和下一个将在内存中,其他2将被销毁.但是对于那些被破坏的片段,我想利用saveState()restoreState()适配器来维持它的状态,所以当我回到那个屏幕时,无论如何都会去onCreateView()那个片段维持状态.

由于mViewPager.setOffscreenPageLimit(4);存在内存问题,因此不是一个好选择.

我搜索了很多,但我没有得到任何使用这2个函数维持和恢复状态的样本.

有人可以帮助我继续.

android android-adapter android-fragments android-viewpager android-pageradapter

6
推荐指数
1
解决办法
8038
查看次数

使用新订单中的片段更新viewpager

我有一个ViewPager设置,它从服务器传递的数据中为其页面(视图)绘制数据.有时,服务器将发送将重新排序视图的新数据(有时会添加新视图),我需要在用户当前查看特定片段时在我的Android设备上无缝地进行此操作.

我将它设置为在从服务器下拉新数据时调用notifyDataSetChanged(),但这似乎将幻灯片的缓存版本保留在当前查看的幻灯片的左侧和右侧,这可能会随着重新排序而改变.我在这里看过这个主题:ViewPager PagerAdapter没有更新View并实现了第一个工作正常的解决方案,除了它重新加载正在查看的当前幻灯片,这对我的目的不起作用.我在第二个答案中实现了在同一页面上提出的setTag()方法,并且可以用于更新幻灯片上的信息,但是它不会帮助我重新排序它们.

有什么方法可以重新排序幕后的所有幻灯片,而不会在当前查看的幻灯片中造成任何打击?

TIA

编辑:添加代码并要求进一步澄清

这是我的Adapter类.

    private class ScreenSlidePagerAdapter extends FragmentPagerAdapter {
    ContestEntriesModel entries;

    public ScreenSlidePagerAdapter(FragmentManager fm, ContestEntriesModel Entries) {
        super(fm);
        this.entries = Entries;
    }

    @Override
    public long getItemId(int position) {
        return entries.entries[position].ContestEntryId;

    }

    @Override
    public int getItemPosition(Object object) {
        android.support.v4.app.Fragment f = (android.support.v4.app.Fragment)object;
        for(int i = 0; i < getCount(); i++){

            android.support.v4.app.Fragment fragment = getItem(i);
            if(f.equals(fragment)){
                return i;
            }
        }
        return POSITION_NONE;
    }


    @Override
    public android.support.v4.app.Fragment getItem(int position) {

        long entryId = getItemId(position);
        //Log.d("EntryIds",Integer.toString(entryId));
        if(mItems.get(entryId) != …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager fragmentpageradapter android-pageradapter

6
推荐指数
1
解决办法
4214
查看次数

setOnPageChangeListener不调用onPageSelected

我使用以下示例设置了一个simpleonpagechangelistener:

Android SimpleOnPageChangeListener - 确定滑动方向

但是,当我执行代码然后滑动viewpager时,我希望调用以下行:

public void onPageSelected(int position) {
Run Code Online (Sandbox Code Playgroud)

但是它似乎永远不会这样做 - 这导致了一个非功能性的viewPager.

有什么建议?

   public class Home extends YouTubeBaseActivity implements VideoClickListener {
    ...
    private int mCurrentTabPosition = NO_CURRENT_POSITION;
    private static final int NO_CURRENT_POSITION = -1;
    private ViewPager mPager;
    ...
    int imageArray[];
    String[] stringArray;

    private OnPageChangeListener mPageChangeListener;
    ImagePagerAdapter adapter = new ImagePagerAdapter();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);

        final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);

        viewPager.setAdapter(adapter);
...

        setOnPageChangeListener(mPageChangeListener);


        mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {


            @Override
            public void onPageSelected(int position) { …
Run Code Online (Sandbox Code Playgroud)

java android android-viewpager onclicklistener android-pageradapter

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

在FragmentStatePagerAdapter管理的选定ViewPager Fragment上,UserVisibleHint为false

我在Android应用中遇到了一个非常难以诊断的问题.getUserVisibleHint()返回false当前选定的片段,ViewPager它应该返回true(因为它是可见的并且被选中).

我已经将我看到这种行为的实例描述如下:

  • 片段已选中并且当前显示在a中 ViewPager
  • ViewPager由a管理 FragmentStatePagerAdapter
  • 之前选择了片段,其状态已保存,之后由其恢复 PagerAdapter
    • viewpager中至少有3个选项卡
    • 用户导航到选项卡3,然后导航到选项卡1,然后返回选项卡3.
  • 应用程序使用支持库版本24.0.0或更高版本

android android-viewpager android-support-library android-pageradapter

6
推荐指数
1
解决办法
1282
查看次数