使用不同的 JSON 对象填充 ViewPager 中的每个片段,而无需再次加载

2024-01-02

我有一个ViewPager有一个Fragment其中包含一个 GridView
仅当我延迟滚动页面并且每次再次从互联网检索内容时,我的代码才能正常工作
我想做的只是获取每个页面内容一次并在用户滚动页面时使用它
我的问题之一是 JSON 下载simultaneously当滚动多个页面并且我不知道如何存储我的 gridview 内容以供页面调用的下一次使用时


有没有一个标准的方法来解决这个问题?


这是我的 ViewPager 的 PagerAdapter :

    public class ViewPagerAdapter extends FragmentStatePagerAdapter {

    String[] tabName;

    public ViewPagerAdapter(FragmentManager fm, String[] tabArray) {
        super(fm);
        this.tabName = new String[tabArray.length]; 
        this.tabName = tabArray;
    }

    @Override
    public Fragment getItem(int position) {     

        TabPageFragment tabPageFragment = new TabPageFragment(position);
        return tabPageFragment;
    }

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

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

ViewPager 的每个页面都使用此类来填充 Fragment :

public class TabPageFragment extends Fragment {

private GridView mgridview; // gridView inside Fragment
private int tabPosition;
private ArrayAdapterGridview arrayadapter; //adapter for my gridView

public TabPageFragment(int tabposition) {

    this.tabPosition = tabposition;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {             

    mgridview = (GridView) rootView.findViewById(R.id.gridView2);

    View rootView = inflater.inflate(R.layout.fragment_grid_view, container,false);

        DownloadContentTab dct = new DownloadContentTab();
        dct.execute();

    return rootView;
}

 // DownloadJSON AsyncTask
private class DownloadContentTab extends AsyncTask<Void, Void, Integer> {

    @Override
    protected Integer doInBackground(Void... params) {

        JSONfunctions jsf = new JSONfunctions(); //this function retrieve's json for me
        JSONArray jsonarray = jsf.getJSONfromURL(myUrl); // this url is differ for each page

        String[] gridNameArray = new String[jsonarray.length()];
        String[] gridPicArray  = new String[jsonarray.length()];

        for (int j = 0; j < jsonarray.length(); j++) {

            try {
            JSONObject jsonobject = jsonarray.getJSONObject(j);                          
            gridNameArray[j] = jsonobject.getString("title");
            gridPicArray[j] = jsonobject.getString("pic");

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }   

        arrayadapter = new ArrayAdapterGridview(context, gridPicArray, gridNameArray);

        return 0;
    }

    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);

        mgridview.setAdapter(arrayadapter);

    }


   }    
 }

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用不同的 JSON 对象填充 ViewPager 中的每个片段,而无需再次加载 的相关文章

随机推荐

  • JAVA 中列表上的聚合函数

    我有一个 Java 对象列表 我需要应用聚合函数 例如在数据库上进行选择 来减少它 注意 数据是根据多个数据库和服务调用计算得出的 我期望有数千行 并且每次执行每行始终具有相同数量的 单元格 该数量在执行之间会发生变化 Samples 如果
  • 在 Heroku 上部署战争所需的步骤

    我有带有 Maven 的 spring 源工具 我有一个 Java 项目想要部署在 Heroku 上 有人可以告诉我在 Heroku 上部署的步骤吗 非常感谢 Create warMaven 中的文件 您可以通过参考来做到这一点here h
  • Akka 适合短暂网络覆盖的系统吗?

    Akka 是否适合在节点需要进出 WiFi 覆盖范围的系统中使用 必须考虑哪些方面 例如首选哪些传输协议 Akka is适用于具有瞬态网络覆盖的系统 正如 Viktor 在对该问题的评论中指出的那样 主管层次结构可用于处理未交付错误 有关更
  • H2DB 中如何像 MySql 中那样获取 sql 转储?

    我有 H2DB 数据库 它将数据存储在文件中 我有3个文件 test 18 log db test data db and test index db 我想要像我使用时一样获取 SQL 转储文件mysqldump 是否可以 是的 有多种解决
  • 喷气背包上的调整大小组合不起作用

    我正在使用 jetpack compose 1 0 0 beta09 在我的项目上实现一个屏幕 但我在屏幕上遇到了一个问题 即使键盘打开 页脚也需要始终可见 我知道我们有android 上的 adjustResize 在正常活动中解决了这个
  • C++ 中无符号整数提升

    int main unsigned i 5 int j 10 double d i j long l i j int k i j std cout lt lt d lt lt n 4 29497e 09 std cout lt lt l l
  • jquery - $.functionName 和 $.fn.FunctionName 之间的区别

    在 jQuery 中 我见过以下两种定义 jQuery 函数的方法 fn CustomAlert function alert boo CustomAlert function alert boo 我知道它们附加到 jQuery 对象 或
  • sql联合顺序

    我有一张桌子 上面有学生的姓名和身高 我想要一个查询 按字母顺序对身高高于 150 厘米的学生进行排序 对身高低于 150 厘米的学生按姓名降序排列 像这样的东西 select from students where height gt 1
  • Visual Studio:是否对整个解决方案进行增量搜索?

    我非常喜欢 Visual Studio 中内置的键盘快捷键 我最喜欢的之一是Ctrl i 这会触发增量搜索 当我填写搜索词时 它会跳过当前文档中的文本 输入所需的搜索词后 我使用F3跳过比赛 它工作正常 除了仅限于搜索当前文件 此外 触发增
  • 我是否应该将“贷款”、“采购”和“销售”表非规范化为一张表?

    根据我在下面提供的信息 您能否就将单独的表非规范化为一个包含不同类型合约的表是否是个好主意发表意见 优点 缺点是什么 有没有人尝试过这样做之前 银行系统使用 CIF 客户信息文件 主 客户可能拥有不同类型的账户 CD 抵押贷款等 并使用交易
  • 向 Swift 2 中的类添加“for...in”支持

    这个问题 https stackoverflow com questions 24099227 add for in support to iterate over swift custom classes早期版本的 Swift 已经得到了
  • 如何在 Swift 中发出 NSURLSession POST 请求

    你好 我是 Swift 的初学者 我正在尝试让 NSURLSession Post 请求发送一些参数 如下面的代码 根据我的下面的代码响应不是来自服务器 有人可以帮助我吗 背景类别 import UIKit protocol sampleP
  • 致命的 Python 错误:无法从堆栈溢出中恢复

    我在互联网上读到类似的问题 但没有一个答案可以帮助我 我有一个函数 对于每一行数据 数据大约有 2 000 000 行 执行一些操作 然后根据它所做的操作使用不同的参数调用相同的函数 问题是 过了一会儿 我在终端中收到此错误 致命的 Pyt
  • nvd3 工具提示十进制格式

    我正在使用 nvd3 显示折线图 格式化工具提示内容时遇到一些问题 这是我用来设置 y 轴文本格式的行 chart1 yAxis tickFormat d3 format 02f 但是 它仅对 y 轴有效 如果有一个像 44 123231
  • android startActivity 来自服务中的意图[重复]

    这个问题在这里已经有答案了 我尝试在服务中使用意图 但是当我尝试这样做时 Intent intent facebook new Intent this MainUploadToYoutube class intent facebook pu
  • Instagram新API,通过标签获取项目

    上个月 Instagram API 更新了 我不明白如何使用它 例如我想通过标签获取图像nexus5x 我确实请求https api instagram com v1 tags nexus5x access token access tok
  • 将背景图像 (SVG) 拉伸至 100% 宽度和 100% 高度?

    我想要实现的行为是宽度background size cover 但高度为background size contain 通过拉伸图像 我以为background size 100 应该这样做 但看看这个例子 它没有 container b
  • 使用 include 动态指向 HTML

    我想基于变量指向不同的 HTML 文件 我使用以下格式的 include include templates case cid intro html 这会引发错误 TemplateNotFound templates case cid in
  • Oracle ojdbc8 12.2.0.1 被 Maven 禁止

    Oracle ojdbc8 12 2 0 1禁止自 2017 年 12 月起由 Maven 提供 在此之前效果良好 Oracle 存储库 setting xml 上的哪些配置已更改 Maven 项目 https github com sgr
  • 使用不同的 JSON 对象填充 ViewPager 中的每个片段,而无需再次加载

    我有一个ViewPager有一个Fragment其中包含一个 GridView仅当我延迟滚动页面并且每次再次从互联网检索内容时 我的代码才能正常工作我想做的只是获取每个页面内容一次并在用户滚动页面时使用它我的问题之一是 JSON 下载sim