user41512: I am trying to create a very simple menu to use with my lcd keypad shield, I have tried looking into how tutorials say to do this but I don’t really understand them. 
Would it be possible to do it by doing something like creating an integer I.e menuTotal, that depending on the what the value of menuTotal is a menu item would display, then have the the up and down buttons add or subtract 1  of the menuTotal value. 
Any help you can give would be greatly appreciated. 
Liam

user27653: Your approach of holding the "current" menu selection and incrementing or decrementing upon external input (button press) is a sound approach.
Consider writing a drawMenu() function that draws the screen, based on the current menu. In your program, keep a bool updateScreen variable. Then, any time you get an external input that would change the screen, set the updateScreen variable to true.  The actual drawMenu() function, after drawing the screen, should reset the updateScreen variable back to false.
In your loop() function, have a section like:
loop() {
  // [... other code ...]

  if (updateScreen) {
    drawMenu();
  }

  // [... other code ...]
}

In this way, the screen is updated when necessary, and your main loop can keep running, processing input, etc.

41512: <p>I am trying to create a very simple menu to use with my lcd keypad shield, I have tried looking into how tutorials say to do this but I don’t really understand them. </p>

<p>Would it be possible to do it by doing something like creating an integer I.e menuTotal, that depending on the what the value of menuTotal is a menu item would display, then have the the up and down buttons add or subtract 1  of the menuTotal value. </p>

<p>Any help you can give would be greatly appreciated. </p>

<p>Liam</p>
 27653: <p>Your approach of holding the "current" menu selection and incrementing or decrementing upon external input (button press) is a sound approach.</p>

<p>Consider writing a <code>drawMenu()</code> function that draws the screen, based on the current menu. In your program, keep a <code>bool updateScreen</code> variable. Then, any time you get an external input that would change the screen, set the <code>updateScreen</code> variable to <code>true</code>.  The actual <code>drawMenu()</code> function, after drawing the screen, should reset the <code>updateScreen</code> variable back to <code>false</code>.</p>

<p>In your <code>loop()</code> function, have a section like:</p>

<pre><code>loop() {
  // [... other code ...]

  if (updateScreen) {
    drawMenu();
  }

  // [... other code ...]
}
</code></pre>

<p>In this way, the screen is updated when necessary, and your main loop can keep running, processing input, etc.</p>
