Blackberry 如何使用屏幕对象(UiApplication.getUiApplication().getActiveScreen())访问屏幕上的文件
我的问题是如何使用screen对象访问堆叠屏幕上的字段 具体问题如下: 我有一个屏幕,其中有一个文本字段(ClientName),当用户单击该字段时,应用程序将推送一个新屏幕,它将允许用户使用MyWebSerivces在远程数据库中搜索。当用户从搜索结果中选择一个客户端时,我想用用户在当前屏幕上选择的文本设置上一屏幕上的文本字段Blackberry 如何使用屏幕对象(UiApplication.getUiApplication().getActiveScreen())访问屏幕上的文件,blackberry,uiapplication,Blackberry,Uiapplication,我的问题是如何使用screen对象访问堆叠屏幕上的字段 具体问题如下: 我有一个屏幕,其中有一个文本字段(ClientName),当用户单击该字段时,应用程序将推送一个新屏幕,它将允许用户使用MyWebSerivces在远程数据库中搜索。当用户从搜索结果中选择一个客户端时,我想用用户在当前屏幕上选择的文本设置上一屏幕上的文本字段 我试过推屏(新屏幕(“文本”)如果我只想做一次这个操作,这可能就是结果,但这不是我的选择,因为还有两个这样的字段将转到另一个屏幕,从Web服务获取数据。如果我每次按下新
我试过推屏(新屏幕(“文本”)如果我只想做一次这个操作,这可能就是结果,但这不是我的选择,因为还有两个这样的字段将转到另一个屏幕,从Web服务获取数据。如果我每次按下新屏幕,那么在每次按下屏幕操作之后,我只会得到一个带有所需文本的字段集黑莓(或任何特定的编程语言)相关问题。这是一个应用程序架构和常识的问题。如果一个屏幕应该更改另一个屏幕的
字段
,那么只需将字段
的引用传递给将更改它的屏幕。嗨,我曾经遇到过同样的问题,我这样做:
屏幕1
------------------
Client Name | text field |
------------------
当用户单击此文本字段或您按下的任何按钮时,屏幕2
在屏幕2中,当用户选择一个特定的值时,则执行此操作
1) 在main类中取一个静态变量,比如clientName。
2) 设置此变量的值。
3) 弹出式活动屏幕
UiApplication.getUiApplication().getActiveScreen();
当调用此代码时,返回屏幕1
现在在screen1中调用了一个方法
public void onExposed()
{
//here u can set the text in textfield using the static variable
invalidate(); // for repainting
}
我已经找到了我问题的答案。答案就在我的问题里,但一开始我没能找到。 解决方案非常简单 当我写的时候,我想用
UiApplication.getUiApplication().getActiveScreen()
这几乎是正确的方法,我正朝着正确的方向前进,但我缺少的是“我没有将屏幕(我刚刚从堆栈顶部检索到的)转换为它的类型
我唯一应该做的是“应该把屏幕铸造成它的类型。像这样。”
UiApplication.getUiApplication().posScreen(this)
(MyScreen1) UiApplication.getUiApplication().getActiveScreen()
现在我可以访问检索到的屏幕上的所有字段(MyScreen1)
要记住的事情
使用静态变量并将其设置为onExpsoed事件是一个好主意,但当我们谈论有效内存使用时,这里的静态值并不是我的最佳选择,我的应用程序是移动应用程序。是的,我在我的问题本身中找到了我问题的答案。哦,dats gr8 u有ans,当需要避免使用静态变量时,应该使用静态变量内存问题。你必须发布你的答案,以便所有其他人都能获得关于rply的帮助,是的,这可能不是一个黑莓问题,但我正在开发一个黑莓应用程序,我想在bb社区我会找到答案。但是你建议的方式是“传递参考”“在这种情况下,我必须按下屏幕,我不希望新屏幕被按下……无论如何,我只在我的问题中找到了我问题的答案……chiill