我遇到黑莓手机的问题。
// Stream connection
streamConnection = (StreamConnection) Connector
.open(_url);
// Document Builder Factory
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
docBuilder.isValidating();
// Parsing inputStream
doc = docBuilder.parse(streamConnection.openInputStream());
doc.getDocumentElement().normalize();
NodeList list = doc.getElementsByTagName("*");
我想在任务解析器完成之前显示正在加载对话框。因为在完成任务XML解析器之后,我必须使用它在屏幕上显示。
那么,如何在Parser XML完成之前显示“加载”对话框? 请帮我 ! 非常感谢你!!!!!!!!!!!!!!!!!
答案 0 :(得分:2)
嗨这是非常简单的任务
以下链接重定向您如何实施请等待屏幕 http://supportforums.blackberry.com/t5/Java-Development/Sample-quot-Please-Wait-quot-screen-part-1/ta-p/493808 下载.zip文件
接下来将小逻辑带入您的应用程序中将所有解析概念转换为线程
例如我正在进行xml解析器演示,我将根据我们的要求进行转换
private class Connection extends Thread{
Vector nodes_vect=new Vector();
Vector elements_vect=new Vector();
public Connection(){
super();
}
public void run(){
// define variables later used for parsing
Document doc;
StreamConnection conn;
try{
//providing the location of the XML file,
//your address might be different
conn=(StreamConnection)Connector.open
("http://localhost:8000/content/test.xml;deviceside=true");// http://localhost:8000/content/test.xml
//next few lines creates variables to open a
//stream, parse it, collect XML data and
//extract the data which is required.
//In this case they are elements,
//node and the values of an element
DocumentBuilderFactory docBuilderFactory
= DocumentBuilderFactory. newInstance();
DocumentBuilder docBuilder
= docBuilderFactory.newDocumentBuilder();
docBuilder.isValidating();
doc = docBuilder.parse(conn.openInputStream());
doc.getDocumentElement ().normalize ();
NodeList list=doc.getElementsByTagName("*");
_node=new String();
_element = new String();
//this "for" loop is used to parse through the
//XML document and extract all elements and their
//value, so they can be displayed on the device
for (int i=0;i<list.getLength();i++){
Node value=list.item(i).
getChildNodes().item(0);
_node=list.item(i).getNodeName();
_element=value.getNodeValue();
nodes_vect.addElement(_node);
elements_vect.addElement(_element);
if(i==list.getLength()-1){
pushingToNextScreen(nodes_vect, elements_vect);//after last element it will
}
}//end for
}//end try
//will catch any exception thrown by the XML parser
catch (Exception e){
System.out.println(e.toString());
}
}//end connection function
}// end connection class
}//end XML_Parsing_Sample
你可以从任何地方拨打电话
import java.util.Vector;
import javax.microedition.io.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;
import net.rim.device.api.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
class XML_Parsing_Sample extends UiApplication{
//creating a member variable for the MainScreen
MainScreen _screen= new MainScreen();
//string variables to store the values of the XML document
String _node,_element;
Connection _connectionthread;
public static void main(String arg[]){
XML_Parsing_Sample application = new XML_Parsing_Sample();
//create a new instance of the application
//and start the application on the event thread
application.enterEventDispatcher();
}
public XML_Parsing_Sample() {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().pushScreen(new LoadingScreen());
}
});
// pushScreen(_screen); // creating a screen
//creating a connection thread to run in the background
_connectionthread = new Connection();
_connectionthread.start();//starting the thread operation
}
public void pushingToNextScreen(final Vector node,final Vector elem){
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
UiApplication.getUiApplication().pushScreen(new datascreen(node, elem));//after last element it will call mainscreen constructer
}
});
}
class datascreen extends MainScreen
{
public datascreen(Vector node,Vector elem) {
//you can write your logic and design with data(vectors contain all data)
}
}
答案 1 :(得分:0)
在开始处理“XML Parsing”模块之前,将Screen
实例(PopupScreen
)放在显示堆栈上,完成后从显示堆栈中删除该屏幕。您可能需要在该屏幕上覆盖满足您需求的某些按键事件,例如按下后退按钮什么都不做。并在该屏幕上添加自定义对话框文本/动画。
答案 2 :(得分:0)
在下面的链接中找到应用程序(PleaseWait.zip)以显示请稍候。
http://supportforums.blackberry.com/t5/Java-Development/problem-in-gaugfield-show-urgent/td-p/964925