有没有办法在Android中确定是否已创建/显示活动的内容视图?

Eth*_*len 4 java eclipse android android-fragments

在我的应用程序的最开始,我在选项卡中加载了一些片段.这是我加载的一个:

WishlistFragment wishlistfragment = new WishlistFragment();
Run Code Online (Sandbox Code Playgroud)

一旦加载并显示了片段,我将从其他片段调用它:

wishlistfragment.adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

问题是,如果我在创建/显示wishlistfragment之前调用它,我会得到以下异常:

java.lang.IllegalStateException:尚未创建的内容视图.

有没有办法以编程方式确定是否已创建视图?

Ral*_*gha 9

我不知道内置方式,但你可以通过制作一个处理通知和覆盖onCreateView你的方法的方法来设计自己的方法WishlistFragment.像这样的东西可能会起作用:

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();
    }
Run Code Online (Sandbox Code Playgroud)

  • 你甚至可以做得更简单,如果`WishlistFragment`是一个`ListFragment` - 只需检查`getListAdapter()`是否返回`null`,如果它是`null`则跳过`notifyDataSetChanged()`. (3认同)