Java 有没有办法在Android中确定某个活动';是否已创建/显示的内容视图?
在我的应用程序的一开始,我在标签中加载了一些片段。这里是我加载的一个:Java 有没有办法在Android中确定某个活动';是否已创建/显示的内容视图?,java,android,eclipse,android-fragments,Java,Android,Eclipse,Android Fragments,在我的应用程序的一开始,我在标签中加载了一些片段。这里是我加载的一个: WishlistFragment wishlistfragment = new WishlistFragment(); 加载并显示片段后,我将从其他片段调用此命令: wishlistfragment.adapter.notifyDataSetChanged(); 问题是,如果我在创建/显示wishlistfragment之前调用它,我会得到以下异常: java.lang.IllegalStateException:尚未创
WishlistFragment wishlistfragment = new WishlistFragment();
加载并显示片段后,我将从其他片段调用此命令:
wishlistfragment.adapter.notifyDataSetChanged();
问题是,如果我在创建/显示wishlistfragment之前调用它,我会得到以下异常:
java.lang.IllegalStateException:尚未创建内容视图
有没有一种方法可以通过编程来确定是否已经创建了视图?我不知道有什么内置的方法,但是您可以通过创建一个方法来处理通知,并在
WishlistFragment
中重写onCreateView
。类似的方法可能会奏效:
public class WishlistFragment extends ListFragment {
private boolean _viewExists = false;
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle bundle )
{
_viewExists = true
return super.onCreateView( inflater, container, bundle );
}
public void notifyChange()
{
if ( _viewExists )
getListAdapter().notifyDataSetChanged();
}
如果
WishlistFragment
是一个ListFragment
,您可能可以做得更简单些——只需检查getListAdapter()
是否返回null
,如果是null
,则跳过notifyDataSetChanged()
。Commonware-您的答案以最快最简单的方式修复了它,谢谢。我真的很推荐更好的封装WishlistFragment
应该有一些活动调用的方法,该方法处理notifyDataSetChanged()
。总之,活动既不知道也不关心片段的内部工作(反之亦然)。这是有意义的。既然你在这里帮了我无数次,我会接受你的建议