title: Update A screen in kivy
body: <p>Hi i am writing a program for my uncles business where he can scan barcodes to keep inventory, im jsut trying to get the part where he can see what all is in his inventory
  and i have ran into a issue where i need to update a screen when i click on a button so i can see the updated text file how would i go about this?</p>
  <p>python file:</p>
  <pre><code>
  class HomeScreen(Screen):
      pass
  
  class ViewBarcode(BoxLayout):
      pass
  
  class Scroll(ScrollView):
      pass
  
  class Stack(StackLayout):
      def __init__(self, **kwargs):
          super().__init__(**kwargs)
          f = open(f'{cwd}/items/items.txt', 'r')
          lines = f.readlines()
  
          for i in lines:
              b1 = Button(
                  text=str(i),
                  size_hint=(1, None),
                  size=(200, dp(50)),
              )
              b1.bind(on_press=self.button1)
              self.add_widget(b1)
  
      def button1(self, instance):
          id = (instance.text).replace('\n', '')
          f = open(f'{cwd}/items/{id}.txt', 'r')
          lines = f.readlines()
          print(instance.text)
          print(f'''Item Name: {lines[0]}\nPrice: {lines[1]}''')
          f = open(f'{cwd}/depends/temps.txt', 'w')
          f.write(str(id))
          f.close()
          App.get_running_app().root.current = 'ViewItem'
  
  class ViewItemScreen(Screen):
      f = open(f'{cwd}/depends/temps.txt', 'r')
      lines = f.readlines()
      barcode = lines[0]
      f = open(f'{cwd}/items/{barcode}.txt', 'r')
      lines = f.readlines()
      name = lines[0]
      price = lines[1]
      name = lines[0]
  
  class barcode(App):
      def build(self):
          sm = ScreenManager()
          sm.add_widget(HomeScreen(name='HomeScreen'))
          sm.add_widget(ViewItemScreen(name='ViewItem'))
          return sm
  
  
  barcode().run()
  </code></pre>
  <p>.kv file</p>
  <pre><code>HomeScreen:
  
  &lt;HomeScreen&gt;:
      BoxLayout:
          cols:2
          BoxLayout:
              cols:2
              size_hint: .5,1
              orientation: 'vertical'
              TextInput:
                  size_hint: 1,1
                  text: 'Enter Barcode'
                  multiline: False
                  on_text_validate: pass
              Button:
                  #size_hint: .5,1
                  text: 'hi'
          Scroll:
              size_hint: .5,1
              Stack:
                  size_hint: 1,None
                  height: self.minimum_height
  
  
  &lt;ViewItemScreen&gt;:
      ViewBarcode:
          BoxLayout:
              size_hint:.25,1
              BoxLayout:
                  orientation: 'vertical'
                  Button:
                      text: 'home'
                      size_hint: .25,.25
                      on_press: root.manager.current = 'HomeScreen'
                  #Label:
                  #    size_hint: .25,.75
              BoxLayout
                  orientation: 'vertical'
                  TextInput:
                      text: root.barcode
                  TextInput:
                      text: root.name
                  TextInput:
                      text: root.price
              Label
                  size_hint: .25,1
  </code></pre>