亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問Fragment的ViewPager這樣的空指針該怎么結局呢?

請問Fragment的ViewPager這樣的空指針該怎么結局呢?

開心每一天1111 2019-05-21 17:38:41
網上找了其他解決方法也不行錯誤日志:java.lang.NullPointerException:Attempttoinvokevirtualmethod'android.view.Viewandroid.app.Activity.findViewById(int)'onanullobjectreferenceatcom.dmxy.fragment.ChannelFragment.onCheckedChanged(ChannelFragment.java:226)代碼:@OverridepublicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){if(json!=null){Gsongson=newGson();ChannelGameTypeBeanchannelGameTypeBean=gson.fromJson(json,ChannelGameTypeBean.class);Listdata=channelGameTypeBean.getData();//TODO:三大游戲類型需改為動態加載數據ChannelGameTypeBean.DataBeandataBean=data.get(0);//初次獲取王者榮耀數據1.英雄聯盟2.王者榮耀3.絕地求生Listnav=dataBean.getNav();ChannelGameTypeBean.DataBean.NavBeannavBean=nav.get(checkedId);//0.比賽1.解說2.戰隊3.專欄4.大神intnavId=navBean.getNavid();intsizes=data.size();Stringsize=String.valueOf(sizes);//傳遞獲取分類游戲數據的POST參數BaseApplication.getApplication().getMap().put("navId",navId);BaseApplication.getApplication().getMap().put("size",size);}//TODO臨時選中//TODO:首頁和頻道模塊快速切換有bugRadioButtontempButton=getActivity().findViewById(checkedId);//這行空指針Log.d(TAG,"2222222222222");tempButton.setOnClickListener(this);}
查看完整描述

2 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

這里產生空指針有兩個原因:a)Fragment只有在onCreateView之后View才會被賦值,可能在此之前獲取Viewb)Fragment已經調用了onDestroyView,可能在此之后獲取View
如果要正確獲取某個視圖,一定要確保生命周期執行準確。針對你的這種情況,在此之前應該先判斷Fragment的getView獲取的視圖是否為空,如果不為空,在Fragment中使用getView().findViewById()獲取子View。如果在Activity中,可以參照第一個回答位置處的回調處理。
                            
查看完整回答
反對 回復 2019-05-21
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

RadioGroup的點擊操作,按道理講,應該不會出現getActivity()returnnull的情況
p.s.在Fragment里直接通過getActivity().findViewById(...)獲取View的對象,這是不正確的做法,正確做法:AndroidDeveloper:CommunicatingwithOtherFragments
                            
查看完整回答
反對 回復 2019-05-21
  • 2 回答
  • 0 關注
  • 952 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號