如何取出hashmap中的值?

realdrizzt 2015-10-08 08:37:58
写个方法取出hashmap中的值,不起作用。
public static String[] getXmlUrl()
{
Object[] getXmlUrl = null;
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // 从网络获取xml
if (xml!=null){
Document doc = parser.getDomElement(xml); // 获取 DOM 节点
NodeList nl = doc.getElementsByTagName(KEY_SONG);
// 循环遍历所有的歌节点 <song>
for (int i = 0; i < nl.getLength(); i++) {
// 新建一个 HashMap
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// 每个子节点添加到HashMap关键= >值
map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL));
// HashList添加到数组列表
getXmlUrl=map.values().toArray();
}
}
return (String[]) getXmlUrl;
}

想取出
parser.getValue(e, KEY_THUMB_URL)
中的值,存到数组中作为返回值。
...全文
1030 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
realdrizzt 2015-10-09
  • 打赏
  • 举报
回复
来人啊,没人会吗?
Zahir_0211 2015-10-09
  • 打赏
  • 举报
回复
//短信还原
	public static Boolean Smsrestore(Context context, Boolean flag,CallBackRestore backRestore)
			throws Exception {
		// 获取短信数据库地址
		Uri uri = Uri.parse("content://sms/");
		ContentResolver resolver = context.getContentResolver();
		if (flag) {
			resolver.delete(uri, null, null);
		}
		// 读取sd卡上的Xml文件
		File file = new File(Environment.getExternalStorageDirectory()
				+ "/smsbackup.xml");
		// 获取绝对路径
		String path = file.getAbsolutePath();
		File myfile = new File(path);
		if (!myfile.exists()) {
			return false;
		}
		XmlPullParser parser = Xml.newPullParser();
		FileInputStream inputStream = new FileInputStream(path);
		parser.setInput(inputStream, "utf-8");
		// 读取一共有几条短信
		// 读取每一条短信的内容
		int evnType = parser.getEventType();
		ContentValues values = null;
		String max="";
		int progress=0;
		while (evnType != XmlPullParser.END_DOCUMENT) {
			switch (evnType) {
			case XmlPullParser.START_TAG:
				String tag = parser.getName();
				if(tag.equalsIgnoreCase("smss")){
					max = parser.getAttributeValue(null,"max");
					backRestore.beforeRestore(Integer.valueOf(max));
				}else if (tag.equalsIgnoreCase("sms")) {
					values = new ContentValues();
				}else if(values!=null){
					if (tag.equalsIgnoreCase("body")) {
						values.put("body", parser.nextText());
					}
					if (tag.equalsIgnoreCase("address")) {
						values.put("address", parser.nextText());
					}
					if (tag.equalsIgnoreCase("date")) {
						values.put("date", parser.nextText());
					}
					if (tag.equalsIgnoreCase("type")) {
						values.put("type", parser.nextText());
					}
				}	
				break;
				case XmlPullParser.END_TAG:
				if(parser.getName().equalsIgnoreCase("sms")&&values!=null){
					resolver.insert(uri, values);
					values=null;
					progress++;
					backRestore.onRestore(progress);
				}
				break;
			}
			evnType = parser.next();
		}
		inputStream.close();
		// 将短信插入系统短信应用
		return true;
	}
哎,真难 2015-10-08
  • 打赏
  • 举报
回复
getString,通过keyname获取
realdrizzt 2015-10-08
  • 打赏
  • 举报
回复
空指针,没有获取到值
realdrizzt 2015-10-08
  • 打赏
  • 举报
回复
引用 1 楼 heaimnmn 的回复:
getString,通过keyname获取
给个代码啊

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧