Error[8]: Undefined offset: 6, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我正在使用支持库,我有一个片段(我称之为“MyFragment”),实现了一个在OnClick事件中由片段视图之一调用的方法. OnClickListener设置在 像这样的OnActivityCreate方法: @Overridepublic void onActivityCreated(Bundle inState) { super.onActivityCreated(inState 我正在使用支持库,我有一个片段(我称之为“MyFragment”),实现了一个在OnClick事件中由片段视图之一调用的方法. OnClickListener设置在
像这样的OnActivityCreate方法:

@OverrIDepublic voID onActivityCreated(Bundle inState) {    super.onActivityCreated(inState);    VIEwGroup base = (VIEwGroup) getVIEw();    TextVIEw tv = (TextVIEw) base.findVIEwByID(R.ID.monografiat);    tv.setonClickListener(new OnClickListener() {                                    @OverrIDe        public voID onClick(VIEw v) {            showStuff(); // MyFragment:150        }    });}

其中showStuff()触发片段视图中的更改,就像更新项目的可见性一样简单:

private voID showStuff() {  //MyFragment:95    VIEwGroup base = (VIEwGroup) getVIEw();    linearLayout ll = (linearLayout) base.findVIEwByID(R.ID.somevIEw); // MyFragment:97    ll.setVisibility(VIEw.VISIBLE);}

在我的测试中一切正常,大多数用户都可以这么说,但是今天我收到了来自Google Play开发人员控制台的单一ANR报告,说明该应用程序崩溃了,因为该行上有NullPointerException的用户:

linearLayout ll = (linearLayout) base.findVIEwByID(R.ID.somevIEw);

意思就是:

VIEwGroup base = (VIEwGroup) getVIEw();

返回null.这是报告:

java.lang.NullPointerException    at mypackage.MyFragment.showStuff(MyFragment.java:97)    at mypackage.MyFragment.access
if(base != null) {}
(MyFragment.java:95) at mypackage.MyFragment.onClick(MyFragment.java:150) at androID.vIEw.VIEw.performClick(VIEw.java:2538) at androID.vIEw.VIEw$PerformClick.run(VIEw.java:9152) at androID.os.Handler.handleCallback(Handler.java:587) at androID.os.Handler.dispatchMessage(Handler.java:92) at androID.os.Looper.loop(Looper.java:123) at androID.app.ActivityThread.main(ActivityThread.java:3687) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method)

我已经解决了问题(或者我认为,因为我没有复制的方法……)只需用以下方法围绕有问题的线:

[+++]

我最好的猜测是,在MyFragment上调用onDestroyVIEw后调度回调,从而导致getVIEw()返回null.

尽管如此,我对这个错误感到非常困惑,所以我想了解你对这个问题的看法:

>假设我的hypotesys是正确的,当没有布局时执行OnClick回调是正常的,或者我可以将此行为视为一个错误(老实说:当我点击它时,视图显然是存在的,为什么它应该死包在我身上)?
>这个问题是否与我使用支持库(最新版本,2013年5月13日)有关?
>如果它不是一个错误,我错过了什么,你能指点我相关的文件吗?

感谢您的关注!

解决方法 直到Gingerbread在VIEw单击机制中存在一个错误,当VIEw从窗口分离时,没有从消息队列中删除执行单击的回调.这已在ICS(或可能在Honeycomb)中修复.因此,如果您支持Gingerbread或更低版本,并且您的单击侦听器访问在分离视图时删除的其他引用,那么您应确保在分离时删除单击侦听器.

请注意,这适用于所有类型的单击侦听器,而不仅仅是OnClickListener.但是它不适用于长按侦听器,因为它们的回调从一开始就被正确删除.

总结

以上是内存溢出为你收集整理的android – Fragment的getView()在OnClickListener回调中返回null全部内容,希望文章能够帮你解决android – Fragment的getView()在OnClickListener回调中返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
android – Fragment的getView()在OnClickListener回调中返回null_app_内存溢出

android – Fragment的getView()在OnClickListener回调中返回null

android – Fragment的getView()在OnClickListener回调中返回null,第1张

概述我正在使用支持库,我有一个片段(我称之为“MyFragment”),实现了一个在OnClick事件中由片段视图之一调用的方法. OnClickListener设置在 像这样的OnActivityCreate方法: @Overridepublic void onActivityCreated(Bundle inState) { super.onActivityCreated(inState 我正在使用支持库,我有一个片段(我称之为“MyFragment”),实现了一个在OnClick事件中由片段视图之一调用的方法. OnClickListener设置在
像这样的OnActivityCreate方法:

@OverrIDepublic voID onActivityCreated(Bundle inState) {    super.onActivityCreated(inState);    VIEwGroup base = (VIEwGroup) getVIEw();    TextVIEw tv = (TextVIEw) base.findVIEwByID(R.ID.monografiat);    tv.setonClickListener(new OnClickListener() {                                    @OverrIDe        public voID onClick(VIEw v) {            showStuff(); // MyFragment:150        }    });}

其中showStuff()触发片段视图中的更改,就像更新项目的可见性一样简单:

private voID showStuff() {  //MyFragment:95    VIEwGroup base = (VIEwGroup) getVIEw();    linearLayout ll = (linearLayout) base.findVIEwByID(R.ID.somevIEw); // MyFragment:97    ll.setVisibility(VIEw.VISIBLE);}

在我的测试中一切正常,大多数用户都可以这么说,但是今天我收到了来自Google Play开发人员控制台的单一ANR报告,说明该应用程序崩溃了,因为该行上有NullPointerException的用户:

linearLayout ll = (linearLayout) base.findVIEwByID(R.ID.somevIEw);

意思就是:

VIEwGroup base = (VIEwGroup) getVIEw();

返回null.这是报告:

java.lang.NullPointerException    at mypackage.MyFragment.showStuff(MyFragment.java:97)    at mypackage.MyFragment.access
if(base != null) {}
(MyFragment.java:95) at mypackage.MyFragment.onClick(MyFragment.java:150) at androID.vIEw.VIEw.performClick(VIEw.java:2538) at androID.vIEw.VIEw$PerformClick.run(VIEw.java:9152) at androID.os.Handler.handleCallback(Handler.java:587) at androID.os.Handler.dispatchMessage(Handler.java:92) at androID.os.Looper.loop(Looper.java:123) at androID.app.ActivityThread.main(ActivityThread.java:3687) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method)

我已经解决了问题(或者我认为,因为我没有复制的方法……)只需用以下方法围绕有问题的线:

我最好的猜测是,在MyFragment上调用onDestroyVIEw后调度回调,从而导致getVIEw()返回null.

尽管如此,我对这个错误感到非常困惑,所以我想了解你对这个问题的看法:

>假设我的hypotesys是正确的,当没有布局时执行OnClick回调是正常的,或者我可以将此行为视为一个错误(老实说:当我点击它时,视图显然是存在的,为什么它应该死包在我身上)?
>这个问题是否与我使用支持库(最新版本,2013年5月13日)有关?
>如果它不是一个错误,我错过了什么,你能指点我相关的文件吗?

感谢您的关注!

解决方法 直到Gingerbread在VIEw单击机制中存在一个错误,当VIEw从窗口分离时,没有从消息队列中删除执行单击的回调.这已在ICS(或可能在Honeycomb)中修复.因此,如果您支持Gingerbread或更低版本,并且您的单击侦听器访问在分离视图时删除的其他引用,那么您应确保在分离时删除单击侦听器.

请注意,这适用于所有类型的单击侦听器,而不仅仅是OnClickListener.但是它不适用于长按侦听器,因为它们的回调从一开始就被正确删除.

总结

以上是内存溢出为你收集整理的android – Fragment的getView()在OnClickListener回调中返回null全部内容,希望文章能够帮你解决android – Fragment的getView()在OnClickListener回调中返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1124959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存