Using Thread.Sleep(); is one approach; but its not the recommended approach.
Theoretically speaking, there are 3 types of wait statements. You can use either Implicit waits, or explicit waits, or fluent waits to wait untill the page reloads. In your case, use implicit waits: driver.manage().timeouts().implicitlyWait() is the command.
Since you need to wait for the page to be reloaded before clicking on the "Add" button, you need to wait for the "Add Item" element to become stale before clicking on the reloaded element. Usage:
driver.manage().timeouts().implicitlywait(30 timeunit.seconds).
For further understanding, you can refer to the Selenium Certification.