简体   繁体   English

无法使用ArrayObjectAdaptor的clear()和addAll()刷新/更新浏览片段

[英]Unable to refresh/update browsefragment using ArrayObjectAdaptor's clear() and addAll()

I have a browsefragment thats displaying rows from a JSON file generated by PHP when a PHP page is called. 我有一个browserfragment,它在调用PHP页面时显示PHP生成的JSON文件中的行。 I am trying to get the browsefragment to refresh the rows as the JSON data will be changing regularly. 我正在尝试使browserfragment刷新行,因为JSON数据将定期更改。

Following the instructions on https://hackernoon.com/how-to-refresh-the-android-tv-browsefragment-6e4d2d3c6690 , I added clear() and addAll() methods found in the ArrayOjectAdapter. 按照https://hackernoon.com/how-to-refresh-the-android-tv-browsefragment-6e4d2d3c6690上的说明,我添加了在ArrayOjectAdapter中找到的clear()和addAll()方法。

The main portion of my browseFragment is: 我的browseFragment的主要部分是:

public class MainFragment extends BrowseSupportFragment
        implements LoaderManager.LoaderCallbacks<LinkedHashMap<String, List<Video>>>{

    private static final int BACKGROUND_UPDATE_DELAY = 300;

    private static final String TAG = MainFragment.class.getSimpleName();

    static final int GRID_ITEM_WIDTH = 300;
    private static final int GRID_ITEM_HEIGHT = 200;
    private final Handler mHandler = new Handler();
    private ArrayObjectAdapter mRowsAdapter;
    private Drawable mDefaultBackground;
    private DisplayMetrics mMetrics;
    private Runnable mBackgroundTask;
    private Uri mBackgroundURI;
    private BackgroundManager mBackgroundManager;
    private CustomListRow mGridItemListRow;
    private LoaderManager mLoaderManager;
    private static final int CATEGORY_LOADER = 123; 

    ArrayList<Video> mItems = null;
    private ArrayList<CustomListRow> mVideoListRowArray;
    private static final int VIDEO_ITEM_LOADER_ID = 1;


    private static PicassoBackgroundManager picassoBackgroundManager = null;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {


        super.onActivityCreated(savedInstanceState);

        prepareBackgroundManager();

        setupUIElements();

        loadRows();
        setRows();

        mLoaderManager = LoaderManager.getInstance(this);
        mLoaderManager.initLoader(VIDEO_ITEM_LOADER_ID, null, this);

        setupEventListeners();
        prepareEntranceTransition();


        picassoBackgroundManager = new PicassoBackgroundManager(getActivity());
        picassoBackgroundManager.updateBackgroundWithDelay("http://twende.phidampalmgardens.com/images/bkground/background1.jpg");

        updateRecommendations();


        if(mVideoListRowArray != null) {

            new Handler().postDelayed(new Runnable() {
                public void run() {
                    //mLoaderManager.restartLoader(CATEGORY_LOADER, null, MainFragment.this);

                    mRowsAdapter.clear();
                    mRowsAdapter.addAll(0, mVideoListRowArray);
                }
            }, 2000);

        }

    }

Unfortunately, I still cannot get the rows to refresh/update without having to close and reopen the app 不幸的是,我仍然无法关闭/重新打开应用程序而无法刷新/更新行

Try adding the mRowsAdapter.notifyDataSetChanged(); 尝试添加mRowsAdapter.notifyDataSetChanged(); statement: 声明:

mRowsAdapter.clear();
mRowsAdapter.addAll(0, mVideoListRowArray);
mRowsAdapter.notifyDataSetChanged();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM