Q:

activity only loads data for first ever pressed index after reloading app

I have created Activity with a listView which uses setOnItemClickListener to determine which index has been pressed.  Then it should pass the data into the next activity based on the selected index. 
Passing of the values works, but it only works for the first listView index pressed after the app is reloaded. 
To make it more clear.  When the app is loaded I can press on any index of the ListView which will pass the data to the next Activity and display it correctly, but then when I go back to the ListView and select different index it still displays the same data from the previous index without updating it.  Therefore, I have to reload the app to get new index results displayed. 
Here is my ViewListActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_artist);

    artistList = (ListView) findViewById(R.id.artistList);
    databasehandler = new SqliteHandler(ViewArtistActivity.this);
    allArtists = databasehandler.getAllArtists();
    artistName = new ArrayList<>();
    singleArtistDetails = new ArrayList<>();

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    if (allArtists.size() > 0) {

        for (int i=0; i < allArtists.size(); i++) {

            ArtistModel artistModel = allArtists.get(i);
            artistName.add(artistModel.getArtistName());
        }
    }

    adapter = new ArrayAdapter(ViewArtistActivity.this, android. R.layout.simple_list_item_1, artistName);
    artistList.setAdapter(adapter);

    artistList.setOnItemClickListener(new AdapterView. OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<? > parent, View view, int position, long id) {

            ArtistModel artistModel = allArtists.get(position);
            singleArtistDetails.add(artistModel.getArtistName());
            singleArtistDetails.add(artistModel.getArtistDOB());
            singleArtistDetails.add(artistModel.getArtistBiography());

            Intent intent = new Intent(ViewArtistActivity.this, SavedArtistDetailsActivity.class);
            intent.putExtra("NAME", singleArtistDetails.get(0));
            intent.putExtra("DOB", singleArtistDetails.get(1));
            intent.putExtra("BIOGRAPHY", singleArtistDetails.get(2));
            startActivity(intent);

        }
    });
}

Here is my code for displaying selected index results Activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_saved_artist_details);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    artistSavedNameLbl2 = (TextView) findViewById(R.id.artistSavedNameLbl2);
    artistSavedDOBLbl2 = (TextView) findViewById(R.id.artistSavedDOBLbl2);
    artistSavedBiographyLbl2 = (TextView) findViewById(R.id.artistSavedBiographyLbl2);
    btnDeleteDetails = (Button) findViewById(R.id.btnDeleteDetails);

    updateUI();
}

private void updateUI() {

    artistSavedNameLbl2.setText(getIntent().getStringExtra("NAME"));
    artistSavedDOBLbl2.setText(getIntent().getStringExtra("DOB"));
    artistSavedBiographyLbl2.setText(getIntent().getStringExtra("BIOGRAPHY"));

}

A:

Do one thing , initialize [not saying declare] your array list singleArtistDetails inside the onClick method, before adding any values to it.  
like 
singleArtistDetails  = new ArrayList();
Hope this will help.