Я объясняю некоторые потоки, как перемещаться с одного экрана на другой экран со значениями.это простой способ на вашем главном экране
protected void onExposed() {
String timezone_static = MyPopup.ocfDATA;
}
в противном случае вы хотите узнать больше, чтобы перемещаться из одного места в другое, просто поймите следующий код
package mypackage;
import java.util.TimeZone;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.ObjectChoiceField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.PopupScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.util.TimeZoneUtilities;
public final class MyScreen extends MainScreen implements FieldChangeListener
{
private ButtonField btn;
private LabelField zone_name;
public MyScreen()
{
//may be you have lots of parameters in constructers those all are in live state only design values you can delete
CreateGui("Default Zone");// add all your design in this function
}
public void CreateGui(String selcetd_time_zone)
{
setTitle(selcetd_time_zone);
zone_name=new LabelField(selcetd_time_zone, Field.FOCUSABLE);
btn=new ButtonField("select timezone",Field.FOCUSABLE);
btn.setChangeListener(this);
add(btn);
add(zone_name);
}
public void ReloadScreenAccordingToNewZone(String zone_name)
{
synchronized (UiApplication.getEventLock()) {
deleteAll();//clean your GUI
invalidate();
CreateGui(zone_name);
}
}
public void fieldChanged(Field field, int context) {
if(field==btn)
{
UiApplication.getUiApplication().pushScreen(new MyPopup(MyScreen.this));
}
}
}
class MyPopup extends PopupScreen implements FieldChangeListener{
ObjectChoiceField ocf;
MyScreen deligate = null;
public MyPopup(MyScreen deligate) {
super(new VerticalFieldManager(), Field.FOCUSABLE);
this.deligate = deligate;
TimeZone[] zone = TimeZoneUtilities.getAvailableTimeZones();
ocf = new ObjectChoiceField("Set Timezone", zone);
ocf.setChangeListener(this);
add(ocf);
}
public void fieldChanged(Field field, int context) {
if(field==ocf)
{
Object ob = ocf.getChoice(ocf.getSelectedIndex());
deligate.ReloadScreenAccordingToNewZone(ob.toString());
close();
}
}
}
Мое предложение заключается в том, что если выВы хотите обновить дизайн из другого класса, а затем просто отделить конструктор и дизайн
, как
. Все ваши проекты пишутся одним методом, предположим CreateGui ();вызовите этот метод из конструктора;если вы хотите перезагрузить дизайн обновлений, просто вызовите CreateGui из метода onExposed ()