任何人都可以帮我把String值从一个屏幕传递到Blackberry的另一个屏幕
答案 0 :(得分:6)
我会说要从第一个屏幕推送第二个屏幕,而不是从应用程序推送 在app推送第一个屏幕:
public class App extends UiApplication {
public static void main(String[] args) {
App app = new App();
app.enterEventDispatcher();
}
public App() {
FirstScreen scr = new FirstScreen();
pushScreen(scr);
}
}
第二个屏幕有一个字符串值的setter:
public class SecondScreen extends MainScreen {
String mTextValue = null;
LabelField mLabel = null;
public void setTextValue(String textValue) {
mTextValue = textValue;
mLabel.setText(mTextValue);
}
public SecondScreen() {
super();
mLabel = new LabelField();
add(mLabel);
}
}
在第一个屏幕中创建第二个,设置字符串值并按下它。如果您不需要返回,请弹出第一个屏幕:
public class FirstScreen extends MainScreen implements FieldChangeListener {
BasicEditField mEdit = null;
ButtonField mButton = null;
public FirstScreen() {
super();
mEdit = new BasicEditField("input: ", "some text");
add(mEdit);
mButton = new ButtonField("Go second screen");
mButton.setChangeListener(this);
add(mButton);
}
public void fieldChanged(Field field, int context) {
if(mButton == field)
{
SecondScreen scr = new SecondScreen();
scr.setTextValue(mEdit.getText());
UiApplication.getUiApplication().pushScreen(scr);
UiApplication.getUiApplication().popScreen(this);
}
}
}
答案 1 :(得分:2)
我认为您可能需要更清楚地了解您的需求。但是从字面上理解你的原始问题,下面的代码是如何做到的。
public class MyApp extends UiApplication {
MyApp() {
MyFirstScreen screenOne = new MyFirstScreen();
pushScreen(screenOne);
String str = screenOne.getWhateverStringINeed();
MySecondScreen screenTwo = new MySecondScreen(str);
pushScreen(screenTwo);
}
}
上面的代码会将两个屏幕推到BlackBerry显示器堆栈上,第二个屏幕基本上具有字符串(您需要的任何字符串),从第一个屏幕开始。