我不确定为什么再次调用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用片段命中倍数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)