![](/img/trans.png)
[英]Null pointer exception, "Attempt to read from field on a null object reference"
[英]Android Attempt to read from field on a null object reference
我有一個Activity
的一些Fragments
在使用ViewPager
,有時用戶發送我有些崩潰報告,我不明白。
我無法發生此崩潰,並且大多數用戶完全沒有問題。
崩潰日志中說:
java.lang.NullPointerException: Attempt to read from field 'com.mehdok.views.treeview.TreeNode$TreeNodeClickListener com.mehdok.mafatih.MainActivity.nodeClickListener2' on a null object reference
nodeClickListener2
在我的主要活動中:
public TreeNode.TreeNodeClickListener nodeClickListener2 = new TreeNode.TreeNodeClickListener()
{
@Override
public void onClick(TreeNode node, Object value)
{
TreeViewHolderNoBorder.TreeViewItem item = (TreeViewHolderNoBorder.TreeViewItem) value;
if(node.isLeaf() && !item.nodeNavUri.equals(""))
{
openNodePage2(item);
}
}
};
在碎片中,我像這樣使用它:
tView.setDefaultNodeClickListener(((MainActivity) getActivity()).nodeClickListener2);
我該怎么做以防止此崩潰?
提前發送。
這是可能的,有時Activity將被回收,當您在Fragment中調用getActivity()
時,它將返回null。 因此,在調用getActivity()
,可以編寫如下代碼:
if (isAdded()) {
tView.setDefaultNodeClickListener(((MainActivity) getActivity()).nodeClickListener2);
...
}
您從哪里訪問片段中的活動字段? 您應該從onAttach()到onDetach()開始執行此操作。
如果您試圖像在構造函數中或片段的onCreate()中那樣過早地訪問它,這將解釋崩潰。 如果您將片段從活動中分離后嘗試訪問它,則相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.