相关疑难解决方法(0)

如何通过另一个活动刷新viewpageadapter中的片段

我有我的Android应用程序的情况.场景是我正在使用一个视图页面适配器whering我有3个页面实际上是片段.我的问题是我想从对话活动更新这些.对话活动包含一个列表来自其onclick事件我想更新片段.

首先是有可能,如果是,请切入并帮助我.

干杯Gaurav

这是我的视图页面适配器

/*
 * Copyright (C) 2012 Gaurav Rawat
 * 
 */
package com.punksrant.ifinddryday.adapter;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.punksrant.ifinddryday.fragment.AllFragment;
import com.punksrant.ifinddryday.fragment.HomeFragment;
import com.punksrant.ifinddryday.fragment.SynchFragment;
import com.punksrant.ifinddryday.utils.IFindDryDaysConstants;
import com.viewpagerindicator.TitleProvider;

public class ViewPagerAdapter extends FragmentPagerAdapter implements
        TitleProvider {

    private static String[] titles = IFindDryDaysConstants.titles;

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

    @Override
    public String getTitle(int position) {
        return titles[position % titles.length].toUpperCase();
    }

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

    @Override
    public Fragment getItem(int position) {
        Fragment fragment;
        switch (position) …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在Android上重置viewpager内容?

请告诉我如何在android上重置ViewPager的内容.我试图调用adapter.notifyDataSetChanged()但是当我滚动视图时,适配器不会调用getItem(position).它总是返回旧的子视图.

更新:这是我的片段视图.当我重置viewPager数据时,它使用了加载的Fragment视图.它只是从onCreateView而不是Constructor开始.

public class ResultView extends Fragment {
//Declare properties

     //Constructor 
public ResultView(Province province, Calendar calendar) {
    Log.d("xskt", "ResultView constructor");
    this.province = province;
    this.calendar = (Calendar) calendar.clone();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Log.d("xskt", "ResultView onCreateView");
    View view = inflater.inflate(R.layout.resultview, null);

    //do some thing

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

谢谢.

android android-viewpager

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

当返回到已停止的活动时,碎片会因旧数据而膨胀

活动 A 有片段。当它启动对活动 B 的意图时B.finish(),然后当 时,AonCreate()再次执行。

但这一次,即使A.onCreate()有 newPacksPagerAdapter和 new ViewPager,片段也显示为旧数据。

我可以看到它onCreateView()为每个片段执行,但由于static newInstance()没有调用它,它仍然具有旧参数。getItem(position)调用FragmentPagerAdapter 时会创建参数。

这是它的实施方式 -

public class PackActivity extends Activity {
    ...
    PacksPagerAdapter mPacksPagerAdapter;
    ViewPager mViewPager;

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

        mPacksPagerAdapter = new MyPagerAdapter(getFragmentManager());

        // Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mPacksPagerAdapter);
        mViewPager.setOffscreenPageLimit(PACK_PAGES - 1);

        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position) {
                        actionBar.setTitle(...);
                    } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-activity android-pageradapter

5
推荐指数
1
解决办法
2900
查看次数

在Android上的ViewPager中替换当前片段

我有一个ViewPager ,Fragment如果某个动作发生,我必须更换第一个.

public static class PagerAdapter extends FragmentStatePagerAdapter{

    private TempChannel latestChannel;
    private VideosFragment.SortType sortType;

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

    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                if(latestChannel == null) {
                    return new LatestVideosFragment();
                }else{
                    return VideosFragment.getVideosFragment(latestChannel, sortType);
                }
            case 1:
                return new LiveVideosFragment();
            case 2:
                return new ConversationsFragment();
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,当我单击某个通道时LatestVideosFragment,适配器中的第一个位置应该更改为VideosFragment该类的实例.

public void startLatestChannelFragment(TempChannel channel, VideosFragment.SortType sortType){
    adapter.setLatestChannel(channel, sortType);
    adapter.notifyDataSetChanged();
    Log.d("x", "on channel started");
}
Run Code Online (Sandbox Code Playgroud)

我假设调用 …

android android-fragments android-viewpager

5
推荐指数
1
解决办法
9767
查看次数

图像使用Glide和SimpleTarget随机加载到视图寻呼机中

我正在使用Glide将图像加载到ViewPager使用中PagerAdapter.当我使用以下方法加载图像时:

Glide.with(mContext).load(mImage).placeholder(R.drawable.placeholder).into(mImageView);
Run Code Online (Sandbox Code Playgroud)

一切正常,但现在我需要从滑动中获取位图,并在加载以备将来编辑时将其存储在地图中,因此我将此方法切换为以下方法:

Glide.with(mContext).load(mImage).asBitmap().placeholder(R.drawable.placeholder).into(new SimpleTarget<Bitmap>() {

                @Override
                public void onLoadStarted(Drawable placeholder) {
                    super.onLoadStarted(placeholder);
                    mImageView.setImageDrawable(placeholder);
                }

                @Override
                public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
                    if (bitmap != null) {
                        mImageView.setImageBitmap(bitmap);
                    }
                    mBitmapMap.put(position, bitmap);
                    mInterface.onImageLoaded(position, bitmap);
                }
            });
Run Code Online (Sandbox Code Playgroud)

但结果是图像并不总是显示出来.我认为这与滑动加载图像异步这一事实有关,并且在某些时候它在instatiateItem方法已经完成运行时返回.

看起来这个问题是相关的.但那里的建议并没有帮助我.有人遇到过这个问题并且有解决方案吗?

android bitmap android-adapter android-viewpager android-glide

4
推荐指数
1
解决办法
1815
查看次数