在黑莓窗口间传递数据的方法
来源:互联网 发布:python数据挖掘入门 编辑:程序博客网 时间:2024/05/21 11:33
这个的用途先说一下,我以前用VB写程序,如果要设置一个标志通知其它窗口程序的设置已经更改了,只需要在module里改变一个变量的值就可以了,现在的黑莓jde不存在模块一说,全局变量也只存在于类文件内部,比如说我修改了软件设置,需要通知其它窗口根据新设置调整自己的布局,怎么办呢?下边是3个类文件,可以简单的实现通知功能,当然只是简单的通知,如果要传递更多的数据可以做相应的修改即可。
SampleApp.java
package code;import net.rim.device.api.ui.UiApplication;public class SampleApp extends UiApplication{ public static void main( String[] args ) { SampleApp theApp = new BacklightApp(); theApp.enterEventDispatcher(); } public SampleApp() { pushScreen(new BacklightScreen()); }}
SampleAppScreen.java
package code;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.Dialog;import net.rim.device.api.ui.container.MainScreen;public class SampleAppScreen extends MainScreen{ public SampleAppScreen() { super( MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR ); setTitle("My Test App"); ButtonField btnTest=new ButtonField("Test", ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY); btnTest.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { TestScreen ts=new TestScreen(); Dialog.alert("Before push screen, modified=" + ts.isModified()); //以模式窗口弹出,这点很重要! UiApplication.getUiApplication().pushModalScreen(ts); Dialog.alert("After pop screen, modified=" + ts.isModified()); ts=null; } }); add(btnTest); } }
TestScreen.java
package code;import net.rim.device.api.ui.Field;import net.rim.device.api.ui.FieldChangeListener;import net.rim.device.api.ui.component.ButtonField;import net.rim.device.api.ui.component.LabelField;import net.rim.device.api.ui.container.MainScreen;public class TestScreen extends MainScreen{ private boolean modified=false; public TestScreen() { super(MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR); ButtonField btnTest=new ButtonField("Click Me!", ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY); btnTest.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { modified=!modified; add(new LabelField("modified=" + modified)); } }); add(btnTest); } public boolean isModified() { return modified; }}
这样在TestScreen关闭之后调用isModified()方法确认设置是否更改,其它窗口是否需要调整布局等等,灵感来自于DateField的调用方法
- 在黑莓窗口间传递数据的方法
- 在窗口间传递数据
- C#窗口之间数据的传递 方法
- PB 数据窗口(DataWindow)中数据传递的方法
- 窗口间传递数据
- 关于两个窗口间的数据传递
- iPhone使用委托在不同的窗口之间传递数据
- iPhone使用委托在不同的窗口之间传递数据
- pb 窗口间传递参数的方法
- windows mobile窗口之间传递数据的方法
- 打开和关闭窗口以及窗口间的数据传递
- JS 子窗口与父窗口间的数据传递
- JS 子窗口与父窗口间的数据传递
- 在PB窗口之间传递参数的方法
- C# 窗口间传递数据
- Web窗口间数据传递
- 老程序员学C# ------ 窗口间的数据传递
- 在ViewController之间传递数据的方法【iOS】
- 微机原理及应用习题库与答案
- Android实现推送方式解决方案
- web.xml详解
- 毕业论文答辩技巧详解(毕业生必备)
- 求回文数
- 在黑莓窗口间传递数据的方法
- web上存漏洞及原理分析、防范方法
- [ASPNET]ASP.NET Event Validation and “Invalid Callback Or Postback Argument” Troubleshooting info
- 用乘法求圆周率
- 题目1097:取中值
- ioctl
- linux内核裁减
- 搭建Window环境下Jni开发步骤(1)
- base64编码、解码的C语言实现