 <p>i have found the answer to my question. the solution was there lying in my question but at first i was not able to find it. solution was very simple when i wrote i want to use</p> <pre><code>UiApplication.getUiApplication().getActiveScreen() </code></pre> <p>that was almost the right way and i was proceeding in right direction but the thing that i was missing was " I was not casting the screen (that i have just retrieved form the stack top ) to its type only thing i should have done is "should have casted screen to its type.like this</p> <pre><code>UiApplication.getUiApplication().posScreen(this) (MyScreen1) UiApplication.getUiApplication().getActiveScreen() </code></pre> <p>now i am able to access all the fields on the retrieved screen (MyScreen1)</p> <p>things to keep in mind </p> <ol> <li>make sure u cast the screen to its type only otherwise bb will give u resource not found error</li> </ol> <p>Benifits of using screen on Stack</p> <ol> <li>u can use already created screen from the stack no need to create new one</li> <li>if u will create new screen it will be stacked in memory and will consume more and more memory even if its of no use ( make habit to pop the screen if it is of no use instead of leaving it on stack))</li> <li>no need to create any static variable since u will be able to set all the field right away from other screen</li> </ol>