 <p>Your code is restoring <code>productNames</code> <em>twice</em>, first in <code>onCreate()</code>, and again in <code>onRestoreInstanceState()</code>. After the first restoration, you append the new product String to the restored list. But then you restore it a second time, which replaces the updated list with the original list.</p> <p>Try deleting your <code>onRestoreInstanceState()</code>.</p>