user62143: I have an arduino mega with a LCD shield (from keyestudio KS2056). I am trying to create a menu with a submenu that would have addable and removable strings based on inputs from a RFID scanner(addable) and buttons(to remove selected strings). I am not so sure how I could possibly do this. Any assistance would be great.

user31105: I will skip the RFID part, that is unrelated to the menu.
What you can do is creating two variables:
int menuLevel1 = 0;
int menuLevel2 = 0;

Assuming you have 2 levels, if you have more levels consider an array.
Now you can print the screen based on the values of these two variables (use a switch statement for menuLevel1 which calls new functions, each with their own switch statement for menuLevel2.
Note there are more solutions, but this is a rather simple solution.
The RFID scanner just changes the values, so going to a different menu screen. 
A slightly different solution is to not use numbers, but an enumeration (or one for the main level, and x for the second level etc). This can add up, so you can also use a single enum value (with one entry per possible menu page).
The last example looks like:
enum EMenuPage
{
   StartPage,
   MainMenu,
   FirstMenu,
   DisplayX,
   SetY,
   …
}

enum EMenuPage _menuPage;

Displaying like:
switch (_menuPage)
{
case StartPage:
   // Fill LCD with start page
   break;

case …

And when an RFID messages comes in:
if (RFID... == Back)
{
  _menuPage = MainMenu;
}
else …


62143: <p>I have an arduino mega with a LCD shield (from keyestudio KS2056). I am trying to create a menu with a submenu that would have addable and removable strings based on inputs from a RFID scanner(addable) and buttons(to remove selected strings). I am not so sure how I could possibly do this. Any assistance would be great.</p>
 31105: <p>I will skip the RFID part, that is unrelated to the menu.</p>

<p>What you can do is creating two variables:</p>

<pre><code>int menuLevel1 = 0;
int menuLevel2 = 0;
</code></pre>

<p>Assuming you have 2 levels, if you have more levels consider an array.</p>

<p>Now you can print the screen based on the values of these two variables (use a <code>switch</code> statement for menuLevel1 which calls new functions, each with their own <code>switch</code> statement for menuLevel2.</p>

<p>Note there are more solutions, but this is a rather simple solution.</p>

<p>The RFID scanner just changes the values, so going to a different menu screen. </p>

<p>A slightly different solution is to not use numbers, but an enumeration (or one for the main level, and x for the second level etc). This can add up, so you can also use a single enum value (with one entry per possible menu page).</p>

<p>The last example looks like:</p>

<pre><code>enum EMenuPage
{
   StartPage,
   MainMenu,
   FirstMenu,
   DisplayX,
   SetY,
   …
}

enum EMenuPage _menuPage;
</code></pre>

<p>Displaying like:</p>

<pre><code>switch (_menuPage)
{
case StartPage:
   // Fill LCD with start page
   break;

case …
</code></pre>

<p>And when an RFID messages comes in:</p>

<pre><code>if (RFID... == Back)
{
  _menuPage = MainMenu;
}
else …
</code></pre>
