2016-06-15 94 views
-1

正如問題標題所示,究竟是什麼EventType在Android Java中所做的事情? 我遇到了一個關於XML解析的Android開發教程,它似乎有一個關鍵部分。 我從來沒有真正理解它的功能,它爲什麼對XML解析有所幫助。 請給簡單的英語解釋,因爲我不是一個英語母語大聲笑,非常感謝。Android Java中的EventType究竟是什麼?

回答

1

EventType本質上是XML文檔中包含某種重要數據的內容塊。所以這可能是一個標籤,一些文本等。Android XmlPullParser docs解釋是這樣的:

解析器的當前事件狀態可以通過調用 getEventType()方法來確定。最初,解析器處於START_DOCUMENT 狀態。

next()方法將解析器推進到下一個事件。從next返回的int值 確定當前解析器狀態,並且與從以下調用返回的值相同的 (與getEventType ())相同。

通常,XML解析器的工作方式是,遍歷文檔尋找感興趣的「事件」。換句話說,您希望繼續逐字逐個查看文檔,直到您看到感興趣的內容,例如開始標記或類似內容。當你發現一個事件時,你希望解析器停下來併爲你識別這個事件,這樣你就知道該怎麼做。該過程通常看起來是這樣的:

int eventType = xpp.getEventType(); 
while (eventType != XmlPullParser.END_DOCUMENT) { 
    if(eventType == XmlPullParser.START_DOCUMENT) { 
     System.out.println("Start document"); 
    } else if(eventType == XmlPullParser.START_TAG) { 
     System.out.println("Start tag "+xpp.getName()); 
    } else if(eventType == XmlPullParser.END_TAG) { 
     System.out.println("End tag "+xpp.getName()); 
    } else if(eventType == XmlPullParser.TEXT) { 
     System.out.println("Text "+xpp.getText()); 
    } 
    eventType = xpp.next(); 
} 
System.out.println("End document"); 

所以在這段代碼中,我們允許分析器遍歷文件,停止在每一個「事件」(興趣點)。然後我們檢查事件,如果它像標籤一樣,我們讀取標籤的名稱 - 如果它是文本,我們閱讀文本等等。所以基本上你找到了你想要的「事件」,然後你閱讀內容該事件包含。

但基本上,事件只是你在文檔中的位置......它可能是文檔開始,文檔結束,標籤,一些文本等。事件類型只是區分我們可以預期的不同類型。各種事件類型通常以靜態常量存儲,類似於XmlPullParser的工作方式。所以有一個您可以期待的事件列表,您只需檢查一下您到達的是哪一個。

希望有所幫助。

+0

感謝您的回答,它真的幫了我很多! –

+0

沒問題,樂於幫忙! – NoChinDeluxe