- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题已经被打了一百万次了,但不幸的是,没有任何关于 SO 的答案可以帮助解决我的问题。
从根本上说,我的问题是,在 RecyclerView
中用CardView
在Fragment
、何时和何处应执行以下任务:
RecyclerView
的适配器RecyclerView
的 notifyfDataSetChanged()
RecyclerView
在我的实现中,目前仅回调 getItemCount()
. onCreateViewHolder()
和 onBindViewHolder()
永远不会被召回。(我见过 this answer 和更多。)
这是它的完成顺序:
AppCompatActivity
实例化一个 Fragment
Fragment
的布局包含一个 RelativeLayout
带有工具栏和 include
ViewPager
的标签. ViewPager
布局包含另一个 include
使用 RecyclerView
设置布局的标签在LinearLayout
.带有 CardView
的布局 XML设置在 RecyclerView
的适配器:
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
Log.wtf(LOG_TAG, "Inside onCreateViewHolder()");
View myView;
LayoutInflater inflater;
inflater = LayoutInflater.from(parent.getContext());
myItemView = inflater.inflate(R.layout.my_row_layout, parent, false);
MyViewHolder myViewHolderItem = new MyViewHolder(myItemView);
return myViewHolderItem;
}
没有 ScrollView
在任何布局中
Fragment
的 onCreate()
调用从服务器获取数据的方法public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Some cache processing
args = getArguments();
myDBHelper = MyDBHelper.getInstance(getActivity());
Intent intent = getActivity().getIntent();
// Search comes from search intent
if (intent.getBooleanExtra(MyContract.MY_SEARCH_REQUEST, false))
{
...
getDataFromCloud("", true);
getDataFromLocalDB(false, item);
} // of if search intent
// Plain intent
else
{
getDataFromCloud("item", false);
getDataFromLocalDB(true, item);
}
} // of onCreate()
Fragment
中的另一种方法的 onCreate()
将本地数据过滤成 ArrayList
ArrayList
出现在 RecyclerView
中- CardView
combo 终于给了用户。 notifyDataSetChanged()
在 fragment 的 onActivityCreated()
中调用.但事实是,它在调用它的任何地方都没有影响。此外,适配器在 onPostExecute()
中实例化的 AsyncTask
创建 ArrayList
对于 CardView
来自本地数据库。这是运行应用程序时产生的日志:
01-03 08:47:34.546 13489-14033/com.my A/MyDBHelper class: Create View-1 query: CREATE VIEW
01-03 08:47:34.562 13489-13489/com.my A/MyFragment: getItemCount: 0
01-03 08:47:34.584 13489-14033/com.my A/MyDBHelper class: Create View-2 query: CREATE TABLE
01-03 08:47:34.638 13489-13489/com.my A/MyFragment: getItemCount: 0
01-03 08:47:34.722 13489-13489/com.my A/MyFragment: getItemCount: 2
01-03 08:47:34.743 13489-13489/com.my A/MyFragment: getItemCount: 2
在上面的日志中,View-1
查询获取服务器数据和 View-2
查询处理如此获取的本地数据。
我在 onCreateViewHolder()
中有日志语句和 onBindViewHolder()
.如上所述,尽管 getItemCount()
返回正值,但这些方法并未被调用。 ,这是 ArrayList
的大小.该应用程序仅显示工具栏和一张空白的白卡,尽管要显示两个记录或项目。
过去几天一直盯着这些日志看,没有任何进展或线索。非常感谢您的专家建议或指点(以及挽救我仅剩的理智)!
最佳答案
最后,是 Jared Burrows's advice 给棺材钉上了最后一颗钉子。 BoyOboy,唯一正确的方法就是战斗! (...几乎总是!)
虽然我无法确定哪里出了问题,但这是我重新做的:
RecyclerView
- CardView
组合在 Fragment
中。就其带来的清晰度而言,非常值得花费时间和精力。ListView
实现,首先获得CardView
,进入ListView
RecyclerView
有了全新的理解,系统地将所有 ListView
代码替换为 RecyclerView
对应代码RecyclerAdapter
和 ViewHolder
现在位于它们自己的独立类中“RecyclerView:未连接适配器;跳过布局”
错误而被困了几个小时; fragment
中没有显示任何内容。那是 Jared Burrows's advice 转换的时间里。RecyclerView
现在看起来很笨拙,等待迎接下一个挑战:动画!
关于java - 将 RecyclerView 的 getItemCount() 与 onCreateViewHolder 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34573330/
我遇到以下问题,不幸的是,我的应用程序在进入下一个 Activity 时停止了。罪魁祸首是: public class RecyclerAdapter extends RecyclerView.
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我调查了关于这个问题的几个 SO 答案(here、here、and here),但没有一个提议的解决方案有效。我的问题是没有显示我的 RecyclerView 列表项。我在 MessengerRecy
我有一个 recyclerView,它让我崩溃: 这是我的开始 Activity : public class StartActivity extends AppCompatActivity {
在您将问题标记为重复之前请阅读问题... 所以我正在尝试使用 Intent 从图库中选择多张图片。当我选择多于 1 张图片时,它工作正常,当我只选择 1 张图片时,它会生成此错误。我寻找了每个 Nul
我为 RecyclerView 创建了一个 FirebaseRecylerAdapter,我的问题是 FirebaseRecyclerAdapter 没有调用 onCreateViewHolder(因
我想在任何给定时间获取“Activity ”键的计数。现在根据 API 文档 getItemCount() 应该返回此值。 然而事实并非如此。过期的键不会减少 getItemCount() 的值。为什
我查看了 SO 上关于此的其他问题,并逐字逐句匹配,但我一定错过了一些东西,因为没有任何效果。 getItemCount() 返回零,但我调试了我的数据列表,它似乎正确地添加了我的所有数据,所以与适配
我创建了一个工作正常的适配器。现在,我需要计算适配器中数据项的数量。我正在使用函数 getItemcount() ,但我每次都得到 0。另外,我正在使用 Firebase 来处理我的数据库。 fi
我刚刚制作了一个回收器 View ,但它没有工作,所以我在 getItemCount 上设置了一个断点,但该方法没有被调用。我从未见过 SO 上的任何其他人有这个特定问题,我相信这是非常明显的事情。这
如果 RecyclerView 为空,我会尝试显示 TextView。但是 ListAdapter 的 getItemCount() 总是返回 0,即使 RecyclerView 显示项目也是如此。
RecyclerView 有一个 InfiniteScrollListener 并且在该监听器内部,在 OnScrolled() 方法中我计算可见项和总项数以检查是否应加载新项。当totalItemC
请调查一下,让我知道哪里出了问题。 public class MyAdapter extends RecyclerView.Adapter { private ItemData[] items
本文整理了Java中com.tc.admin.common.XComboBox.getItemCount()方法的一些代码示例,展示了XComboBox.getItemCount()的具体用法。这些代
本文整理了Java中org.jfree.data.xy.XYIntervalSeries.getItemCount()方法的一些代码示例,展示了XYIntervalSeries.getItemCoun
本文整理了Java中org.jfree.data.xy.YIntervalSeries.getItemCount()方法的一些代码示例,展示了YIntervalSeries.getItemCount(
我遇到了一个奇怪的错误,如果 getItemCount 返回 1(数据结构的大小),适配器不会显示任何卡片。 我的适配器代码 - public class SingleAdapter extends
我知道我的问题已被问过好几次,但我已经搜索了一段时间,但没有一个答案能解决我的问题。问题是,当我在我的“HomeFragment”中创建 recyclerview 适配器和方法“onViewCreat
我从使用 FlatList 切换到 VirtualizedList,并收到错误 this.props.getItemCount 不是函数。当我运行调试器时,VirtualizedList.js 抛出异
文档对 getItemCount() 的描述如下: Returns the number of items in the adapter bound to the parent RecyclerVie
我是一名优秀的程序员,十分优秀!