Android listview refresh

No meu aplicativo, quando o usuário clica no botão de menu ADICIONAR, é exibida uma lista com os itens carregados de um arquivo de texto. Portanto, agora o usuário pode adicionar mais um item à lista. Depois de adicioná-lo a uma matriz, o novo item é gravado no arquivo de texto, mas não entra na visualização de lista, como eu quero fazê-lo lendo o arquivo em uma matriz e, em seguida, preencha o ListView. O problema é que isso não está funcionando. O preenchimento do adaptador de matriz está no método onCreate (Bundle savedInstanceState) {}, mas a adição está fora dele, como é chamada pressionando um menu.

public class Connection extends Activity {
ListView lv1;
ArrayList<String> assignArr0 = new ArrayList<String>();
ArrayList<String> assignArr00 = new ArrayList<String>();
ArrayAdapter<String> adapter1;
ArrayAdapter<String> adapter2;

public void onCreate(Bundle savedInstanceState) {
...
//filereading to assingArr0. Lines of the file are added to the listview.
lv1 = (ListView) findViewById(R.id.ListView01);
adapter1 = new ArrayAdapter<String>(Connection.this,R.layout.list_black_text,R.id.list_content, assignArr0);
lv1.setAdapter(adapter1);
adapter1.notifyDataSetChanged();

//now, if there were any lines in the text file, the ListView is populated with them.
}

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.Menu1:
//this is where user adds an item to an array and item gets written out to the text file
//and this is also the part where the listview should be cleared, the lines of the text file should be read into an array, and the listview should be populated with the items of that array.

//The filereading is ok. Lines are read into assignArr00. Now what?

 break;
    }
    return true;
}
}

Esta é a maneira que tentei fazê-lo depois que as linhas são lidas no assignArr00:

 if (fileisempty == false) //i set this boolean var at the beginning
          {
              adapter1.clear();
            //  adapter1 = new ArrayAdapter<String>(Connection.this,R.layout.list_black_text,R.id.list_content, assignArr00);
              //lv1.setAdapter(adapter1);
              //adapter1.notifyDataSetChanged();
          }
          else
          {
              adapter1 = new ArrayAdapter<String>(Connection.this,R.layout.list_black_text,R.id.list_content, assignArr00);
              lv1.setAdapter(adapter1);
              adapter1.notifyDataSetChanged();
              }
          }

A parte mais deste último código resulta em um fechamento forçado (não se esqueça que esta é a primeira execução, portanto o arquivo de texto está vazio, é por isso que a parte else está ativada.

Não tenho muita certeza sobre tudo isso. Talvez as declarações estejam em um lugar errad

Qualquer ajuda é apreciada.

Edit: eu consegui resolver isso. A solução pode ser encontrada abaixo.

questionAnswers(1)

yourAnswerToTheQuestion