我正在使用 anActionBar
创建一个Activity
与 aViewPager
和 3 Fragments
。当我的父 Activity 首次创建时,我调用一个 Web 服务并尝试将结果返回到三个单独片段的 UI。到目前为止,我已经尝试向父活动添加一个接口并在子片段中实现它,但我得到一个空指针异常。我的代码如下:
在父活动中我声明一个接口
public interface CommunicateResultsToChilden{
public void displayResultInfo(JSONObject response);
}
在 HttpGet 返回后,我调用:
communicateResults.displayResultInfo(response);
然后在子片段中我说
public class ChildFrag1 extends Fragment implements CommunicateResultsToChildren{
@Override public void onCreate(Bundle savedIstanceState){
// initialize objects
}
public void displayResultInfo(JSONObject response){
// It never makes it to this call inside the method
Log.d("RESPONSE", "JSONObject : " + response);
}
}
在我打电话之前communicateResults.displayResultInfo(response);
我如何获得我刚刚创建的这个接口的参考?
解决方案
我在里面添加了
protected class CustomViewPagerAdapter extends FragmentStatePagerAdapter {
// ....// Methods from tutorial on android developer swipe tabs
public Fragment getItem(int Position){
// Each time the view pager calls getItem(position)
// this is called
instantiatedFragment(fragment);
}
}
在我的主要课程中
public instantiatedFragment(Fragment fragment){
if(fragment != null){
try{
// Member Variable instance of CommunicateResultsToChildren
newInterface = (CommunicateResultsToChildren) fragment;
mInterfaceList.add(newInterface);
}catch(Exception ex){
// Pop up dialog with exception message
// telling user
}
}
}