更新片段中的列表视图

时间:2013-12-09 14:27:03

标签: android android-fragments

我有一个包含三个片段的活动,我需要从第二个片段更新第三个片段中的listview,但它给我空指针异常,

从第二个片段,我有一个按钮,它的onclick,我喜欢,

Fragment3 fragment3 =  new Fragment3();
fragment3.reload(fragment3.getActivity());

然后在另一边(fragment3),我正在使用,

public void reload(Activity activity) {
    // TODO Auto-generated method stub
    thisContext = activity;
    mList = getdata();

    if(mList !=null && mList.size() > 0 ) {
        if(listAdapter !=null){
            listAdapter.notifyDataSetChanged();
        } else {
            listAdapter = new CustomListAdapter(thisContext, mList);
            setListAdapter(listAdapter);
        }
    }
}

当我调试时,我的上下文为空,请帮忙!

2 个答案:

答案 0 :(得分:1)

要扩展Ascorbin的答案,您将创建一个与您当前活动无关的Fragment3的实例。

记录了与其他碎片通信的方法here

简而言之,您应该让您的Activity 获取Fragment3的现有实例并调用该Fragment的reload方法。

答案 1 :(得分:0)

使用

创建新片段时
Fragment3 fragment3 =  new Fragment3();

它尚未附加到活动,所以

fragment3.getActivity()

将为空。

假设您在Activity中执行代码的第一部分,请执行

Fragment3 fragment3 =  new Fragment3();
fragment3.reload(getApplicationContext());

如果你没有创建一个新的片段但是使用了一个旧的fragment3实例并只更新现有的ListView,那么imho会更好。