android – onCreateOptionsMenu用片段命中倍数

android – onCreateOptionsMenu用片段命中倍数,第1张

概述我有两个ListFragments(A和B,实际上是SherlockListFragments),当我在两个片段中的onCreateOptionsMenu中放置一个断点时,片段A被击中3次而片段B被击中2次.另外,当AsyncTask正在运行时,我正在为菜单图标设置动画,如果我在片段A中选择一个项目,则再次调用onCreateOptionsMenu并将图标加倍: 我不确定为什么再次调用onCrea 我有两个ListFragments(A和B,实际上是SherlockListFragments),当我在两个片段中的onCreateOptionsMenu中放置一个断点时,片段A被击中3次而片段B被击中2次.另外,当AsyncTask正在运行时,我正在为菜单图标设置动画,如果我在片段A中选择一个项目,则再次调用onCreateOptionsMenu并将图标加倍:

我不确定为什么再次调用onCreateOptionsMenu因为我只是在“details”片段中调用一个方法:

@OverrIDepublic voID onListItemClick(final ListVIEw l,final VIEw v,final int position,final long ID){    DetailsFragment fragment = (DetailsFragment)getFragmentManager().findFragmentByID(R.ID.fragmentDetails);    if (fragment != null && fragment.isInLayout())    {        fragment.displayItems();    }     else     {        final Intent Listing = new Intent(activity.getApplicationContext(),DetailsFragmentActivity.class);        startActivity(Listing);    }}

更新:

我正在使用此代码为菜单项设置动画:

private MenuItem refreshItem;   private voID DoRefresh() {    final LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    final ImageVIEw ivRefresh = (ImageVIEw)inflater.inflate(R.layout.refresh_vIEw,null);    final Animation rotation = AnimationUtils.loadAnimation(activity,R.anim.refresh);    ImageVIEw ivRefresh.startAnimation(rotation);    refreshItem.setActionVIEw(ivRefresh);    //AsyncTask is kicked off here}@OverrIDepublic boolean onoptionsItemSelected(final MenuItem item) {    if (item.getItemID() == R.ID.refresh) {        refreshItem = item;        this.DoRefresh();        return true;    } else {        return super.onoptionsItemSelected(item);    }}
解决方法 从文档:

“在系统调用onCreateOptionsMenu()之后,它会保留您填充的菜单的实例,并且不会再次调用onCreateOptionsMenu(),除非由于某种原因菜单无效.但是,您应该仅使用onCreateOptionsMenu()来创建初始菜单状态而不是在活动生命周期中做出改变.“

我的猜测是,你正在做的事情使菜单无效. fragment.displayItems()有什么作用?

总结

以上是内存溢出为你收集整理的android – onCreateOptionsMenu用片段命中倍数全部内容,希望文章能够帮你解决android – onCreateOptionsMenu用片段命中倍数所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存