MaterialList中的findViewByID生成NPE

时间:2018-03-05 20:21:14

标签: java android

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

我正试图在其中一张牌中找到一个物品。例如,

((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中不存在任何人,但任何其他方式都不起作用。

1 个答案:

答案 0 :(得分:0)

您正在调用序列中的方法,而不检查它们的值是否实际有效。

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

我最好的猜测是你试图检索一个不存在的ID,或者,组件中的文本为null,而toString()调用是通过调用getText()来抛出NPE的,绝对可以返回null。