My App uses ActionBar Tab Fragments to Create/Modify Device Details. The Device properties of categorized into different fragments. I want to initialize each fragments in OnCreate of Tab Activity. In each tab fragment has SetValues method which initializes values to view in the fragment. I noticed that fragment is created when i clicked on particular Tab.
Tab Activity
public class CameraDetails extends Activity {
 private CameraData camera = new CameraData();
 Fragment network = new NetworkFragment();
 Fragment remoteUser = new RemoteUserFragment();
 private G.Interface mNetworkInterface = null;
 private G.Interface mRemoteUserInterface = null;    
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cameradetails);
    ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    // network tab
    ActionBar.Tab tab = actionBar.newTab();
    tab.setText("Network");
    tab.setIcon(R.drawable.ic_launcher);
    tab.setTabListener(new TabListener(network));
    actionBar.addTab(tab);
    // remote user tab
    tab = actionBar.newTab();
    tab.setText("Remote User");
    tab.setIcon(R.drawable.ic_launcher);
    tab.setTabListener(new TabListener(remoteUser));
    actionBar.addTab(tab);
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
          init();
      }
    }, 1000);
}
public void init(){
    try{
        byte[] by = new byte[512];
        String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
        File file = new File(extStorageDirectory, "dump.hex");
        BufferedInputStream in = new BufferedInputStream( new FileInputStream(file));
        in.read(by);
        in.close();
        camera.set( by );
        mNetworkInterface.SetValues();
        mRemoteUserInterface.SetValues();           
    } catch(Exception e){
        e.printStackTrace();
    }
}
public CameraData getCameraData(){
    return camera;
}
public void setNetworkListener( G.Interface Interface ){
    this.mNetworkInterface = Interface;
}
public void setRemoteUserListener( G.Interface Interface ){
    this.mRemoteUserInterface = Interface;
}
}
one of the fragment tab
public class NetworkFragment extends Fragment implements G.Interface {
View rootView;
Activity mActivity;
CameraData camera;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.network_layout, container, false);
    Log.i("NetworkFragment", "CreateView");
    return rootView;
}
@Override
public void onAttach(Activity activity) {
    mActivity = activity;
    ((CameraDetails)mActivity).setNetworkListener(this);
    camera = ((CameraDetails)mActivity).getCameraData();
    Log.i("NetworkFragment", "Activity Attached");
    super.onAttach(activity);
}
@Override
public void SetValues() {
    try {
        // ip address
        EditText et = (EditText)rootView.findViewById(R.id.cd_ip_address);
        et.setText(camera.mNetwork.IPAddress);
        // subnet mask
        et = (EditText)rootView.findViewById(R.id.cd_subnetmask);
        et.setText(camera.mNetwork.SubnetMask);
        // gateway
        et = (EditText)rootView.findViewById(R.id.cd_gateway);
        et.setText(camera.mNetwork.Gateway);
        // com port
        et = (EditText)rootView.findViewById(R.id.cd_comm_port);
        et.setText(""+camera.mNetwork.CommPort);
        // mimg port
        et = (EditText)rootView.findViewById(R.id.cd_mimg_port);
        et.setText(""+camera.mNetwork.MImgPort);
        // webserver port
        et = (EditText)rootView.findViewById(R.id.cd_web_server_port);
        et.setText(""+camera.mNetwork.WebServerPort);
        // wifi id
        et = (EditText)rootView.findViewById(R.id.cd_wifi_id);
        et.setText(camera.mNetwork.WiFiId);
        // wifi password
        et = (EditText)rootView.findViewById(R.id.cd_wifi_pwd);
        et.setText(camera.mNetwork.WiFiPassword);
        // wifi mode
        Spinner sp = (Spinner)rootView.findViewById(R.id.cd_wifi_mode);
        sp.setSelection(camera.mNetwork.WiFiMode, true);            
        Log.i("NetworkFragment", "SetValues OK");
    } catch( Exception e ){
    }
}
}
Init method of tab activity initializes the values into fragment NetworkFragment and RemoteUserFragment. The values are initialized for NetworkFragment. But NullPointerException for RemoteUserFragment.
LOGCAT
    06-11 12:06:38.161: W/System.err(677): java.lang.NullPointerException
    06-11 12:06:38.201: W/System.err(677):  at com.mtxlabs.cameraviewer.CameraDetails.init(CameraDetails.java:114)
    06-11 12:06:38.201: W/System.err(677):  at com.mtxlabs.cameraviewer.CameraDetails$1.run(CameraDetails.java:98)
    06-11 12:06:38.201: W/System.err(677):  at android.os.Handler.handleCallback(Handler.java:615)
    06-11 12:06:38.211: W/System.err(677):  at android.os.Handler.dispatchMessage(Handler.java:92)
    06-11 12:06:38.211: W/System.err(677):  at android.os.Looper.loop(Looper.java:137)
    06-11 12:06:38.211: W/System.err(677):  at android.app.ActivityThread.main(ActivityThread.java:4745)
    06-11 12:06:38.211: W/System.err(677):  at java.lang.reflect.Method.invokeNative(Native Method)
    06-11 12:06:38.211: W/System.err(677):  at java.lang.reflect.Method.invoke(Method.java:511)
    06-11 12:06:38.211: W/System.err(677):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    06-11 12:06:38.211: W/System.err(677):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    06-11 12:06:38.211: W/System.err(677):  at dalvik.system.NativeStart.main(Native Method)
How can i solve this problem or Is other technique is used to do it.
Advance thanks
