編輯:關於Android編程
plist,即property list,是蘋果手機軟件開發中經常用到的存儲文件格式,其實質就是XML文件,但是它遵循一定的格式。比如包含一些指定的元素,如plist,array,string,key等。蘋果提供了解析該類文件的機制,可惜在安卓開發工具中卻沒有提供。經常遇到的情況是,在開發蘋果和安卓手機軟件的時候,要統一資源文件,這個時候,我們可以采用GitHub中提供的開源android-plist-parser解決方案。
比如我們要解析一個全國省市區的一個plist文件:
xml version="1.0" encoding="UTF-8"?>0 ... ... ... 北京市 0 北京市 東城區 西城區 朝陽區 豐台區 石景山區 海澱區 門頭溝區 房山區 通州區 順義區 昌平區 大興區 懷柔區 平谷區 密雲縣 延慶縣 0 ... ... ... 北京市 0 北京市 東城區 西城區 朝陽區 豐台區 石景山區 海澱區 門頭溝區 房山區 通州區 順義區 昌平區 大興區 懷柔區 平谷區 密雲縣 延慶縣
那麼如何在android中解析呢?
一:在GitHub上下載android-plist-parser
二:解壓下載的包,並導入android項目的類路徑裡。
三:解析該文件,並將解析信息打印在控制台。(因為該文件不算太小,因此在新線程中運行,防止主線程卡死)
new Thread(new Runnable() {
@Override
public void run() {
PListXMLParser parser = new PListXMLParser(); // 基於SAX的實現
PListXMLHandler handler = new PListXMLHandler();
parser.setHandler(handler);
try {
parser.parse(getAssets().open("area.plist")); // area.plist是你要解析的文件,該文件需放在assets文件夾下
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
PList actualPList = ((PListXMLHandler) parser.getHandler()).getPlist();
Dict root = (Dict) actualPList.getRootElement();
Map provinceCities = root.getConfigMap();
for(int i=0; i province = provinceRoot.getConfigMap();
String provinceName = province.keySet().iterator().next();
System.out.println("省份為:" + provinceName); // 打印省份
Dict cityRoot = (Dict) province.get(provinceName);
Map cities = cityRoot.getConfigMap();
for(int j=0;j provinceCities = root.getConfigMap();
for(int i=0; i cities = cityRoot.getConfigMap();
for(int j=0;j province = provinceRoot.getConfigMap();
String provinceName = province.keySet().iterator().next();
Android調節屏幕亮暗度和音量
一.背景做視頻用到了就記錄下,從github(https://github.com/curtis2/SuperVideoPlayer 謝謝)上扒了一個項目的手勢調亮度和音
Android開發四大組件之實現電話攔截和電話錄音
一、問題描述 使用BordercastReceiver和Service組件實現下述功能:1.當手機處於來電狀態,啟動監聽服務,對來電進行監聽錄音。2.設置電話黑名單,當
Android 使用開源庫加載網絡圖片
Android 使用開源庫加載網絡圖片,使用開源庫加載圖片。單擊listview彈出popupwindow彈出框詳情查看:Android 單擊listview彈出popu
Android實習札記(8)---ViewPager+Fragment實例詳解
Android實習札記(8)---ViewPager+Fragment實例講解 在札記(5)中我們就說過要弄一個模仿微信頁面切換的東東,就是V