- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
屏幕 1:GridView
屏幕 2:详细信息页面
任务达成:
1) 从服务器加载gridview中的所有视频。
2) 用户点击gridview item的任意位置。
3) 打开并播放特定视频的详细信息屏幕。
4) 垂直滚动播放下一个或上一个视频。
当前实现:
GridFragment {
ArrayList<VideoPostModel> videoPostList;
RecyclerView gridView;
onnItemClick() {
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("data", videoPostList);
intent.putExtra("click_index", clickedIndex);
intent.putExtra("pagination_index", paginationIndex);
startActivity(intent);
}
}
DetailActivity {
VerticlaViewPager vertiCalViewPager;
ArrayList<VideoPostModel> videoPostList;
onCreate() {
videoPostList = getIntent().getParcelableArrayListExtra("data");
clickedIndex = getIntent().getIntExtra("clickindex", 0);
paginationIndex = getIntent().getIntExtra("pagination_index", 0);
VideoFragmentStatePagerAdapter viewPagerAdapter = new VideoFragmentStatePagerAdapter(videoPostList);
vertiCalViewPager.setAdapter(viewPagerAdapter);
}
}
问题:
如果 videoPostList 在将数据从 fragment 传递到 Activity 时有更多数据(大约 100 多个 VideoPostModel 对象),那么应用程序会崩溃,因为使用 intent ( https://stackoverflow.com/a/37054839/3598052 ) 发送数据存在限制。
Hacky 替代品:
1) 静态数组列表
2) Application类中的Arraylist
寻找最优和高效解决方案来实现上述功能。
对于实现这一目标的任何建议、引用链接或代码,我们将不胜感激,并提前致谢。
更新 1:
我发现的另一个解决方案是使用枚举传递数据,但根据评论我不确定它的性能。引用:https://stackoverflow.com/a/14706456/3598052
最佳答案
我认为您可以像您提到的那样在 Activity 中编写或在应用程序中使用 Arraylist。或者它可能是最近出现在 Android 中的库 Jetpack .在应用上它与Arraylist在本质上是相似的。
ViewModel使管理和存储数据更容易的对象。它允许您访问应用程序中不同 Activity 或 fragment 的数据。你试试吧,希望对你有用
关于android - 如何为 Android 应用程序创建 TikTok/Musical.ly 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128294/
我是一名优秀的程序员,十分优秀!