Pasar ArrayList <String> entre pestañas

No tengo muy claro el objeto Intent y cómo usarlo para pasar datos entre Actividades. En mi aplicación tengo varias pestañas entre las cuales quiero pasar ArrayList. Aquí hay un código de muestra que planeo usar, pero me falta la parte donde la actividad principal capta la intención y la pasa a la nueva actividad al inicio:

1) myTabs.java ==> Aquí es donde creo que necesito agregar algo de código para pasar los datos entre TabOne y TabTwo. Por ahora solo está usando el código de muestra de la muestra TabActivity.

public class myTabs extends TabActivity {
    /** Called when the activity is first created. */
    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Reusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, TabPeopleActivity.class);
        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = tabHost.newTabSpec("TabOne").setIndicator("TabOne",
                          res.getDrawable(R.drawable.ic_tab_one))
                      .setContent(intent);
        tabHost.addTab(spec);

        // Do the same for the other tabs
        intent = new Intent().setClass(this, TabTransactionActivity.class);
        spec = tabHost.newTabSpec("TabTwo").setIndicator("TabTwo",
                          res.getDrawable(R.drawable.ic_tab_two))
                      .setContent(intent);
        tabHost.addTab(spec);

        tabHost.setCurrentTab(0);
    }
}

2) TabOne.java ==> Agregué un fragmento de código en el procedimiento onStop para completar los datos de Intención con la matriz que quiero pasar a TabTwo. Sin embargo, no estoy seguro de que sea la forma correcta de hacerlo.

public class TabOne extends Activity {

    [...]
    private ArrayList<String> arrayPeople;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabone);
        arrayPeople = new ArrayList<String>();

    [... here we modify arrayPeople ...]

    }

    /** Called when the activity looses focus **/
    @Override
    public void onStop(){
        Intent myIntent = new Intent();
        myIntent.putStringArrayListExtra("arrayPeople", arrayPeople);
        this.setIntent(myIntent);
    }
}

3) TabTwo.java ==> Aquí estoy tratando de obtener la ArrayList de la Intención que se supone que se pasará cuando comience la Actividad. pero como hacer esto?

public class TabTwo extends Activity {

    private ArrayList<String> arrayPeople;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.transaction);

        Intent myIntent = new Intent();
        myIntent = this.getIntent();
        arrayPeople = myIntent.getStringArrayListExtra("arrayPeople");
    }
}

Gracias por tus ideas!

EDITAR:

Bien, lo haré simple, aquí está el espacio de trabajo completo del proyecto:

http://www.lecompteestbon.com/Android.LCEB.zip

Lo que quiero hacer es una versión fuera de línea del sitio web lecompteestbon, que permite a las personas hacer cuentas entre amigos después de un fin de semana.

TabPeople = Add the list of friends
TabTransactions = List of expenses
TabTransaction = Add an expense
TabResult = Calculate the list of payments

Déjame saber cómo hacer que esto funcione :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta