MaterialList 中的 findViewByID 生成 NPE



我目前正在使用Dexafree的MaterialList库来创建卡片列表。根据我对它工作原理的理解,MaterialList本质上是一个回收器视图。

我正在尝试在其中一张卡片中获取一个对象。举个例子,

((EditText) findViewById(R.id.edittext_doestitlematch_confirm_item_specs)).getText().toString()

但是,这会产生 NPE。我尝试了其他解决方案,例如

((EditText) mListView.getLayoutManager().findViewByPosition(i).getRootView().findViewById(R.id.edittext_doestitlematch_confirm_item_specs)).getText().toString()

这似乎也行不通。有人有什么想法吗?我有一种感觉,该视图在RecyclerView中不存在任何人,但是任何其他获取它的方法都不起作用。

您正在按顺序调用大量方法,而从未检查过它们的值是否实际有效。

个分解并 null 检查所有可以返回 null 的内容,直到找到根本原因。

我最好的猜测是,您要么尝试检索不存在的 ID,要么来自组件的文本为 null,并且 toString(( 调用是通过调用 getText(( 抛出 NPE 的,这绝对可以返回 null。

最新更新