我想通过解析XML来创建应用程序员工详细信息。其中将显示员工详细信息,如empid,empname,empcost等。我想从xml获取一些数据后立即显示drawable文件夹中的图像。然后我需要当我点击每个图像时它显示员工deatils即:empid,empname,empcost在另一个活动中。 以下是我的java代码,它显示了从ListView中的XML解析的数据:
java:
public class XmlVdUI extends ListActivity {
Document doc;
private Element getChildEle(Element parentEle, String common) {
for (Node n = parentEle.getFirstChild(); n != null; n = n
.getNextSibling()) {
if (n.getNodeType() == Node.ELEMENT_NODE
&& n.getNodeName().equals(common)) {
return (Element) n;
}
}
return null;
}
public static Iterable<Element> getChildren(Element common, String group) {
List list = new ArrayList();
for (Node n = common.getFirstChild(); n != null; n = n.getNextSibling()) {
if (n.getNodeType() == Node.ELEMENT_NODE
&& n.getNodeName().equals(group)) {
list.add(n);
}
}
return (Iterable<Element>) list;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
parseXml();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xml_vd_ui);
final String _EMPID = "Empid";
final String _EMPNAME = "Name";
final String _EMPCOST = "Empcost";
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
Element commonEle = getChildEle(doc.getDocumentElement(), "Common");
Iterable<Element> groupEle = (Iterable<Element>) getChildren(commonEle,
"Group"); // Iterable<Element>
groupEle = (Iterable<Element>) getChildren(commonEle, "Group");
System.out.println("hi");
for (Element e : groupEle) {
HashMap<String, String> map = new HashMap<String, String>();
map.put(_EMPID, getValue(e, _EMPID));
map.put(_EMPNAME, getValue(e, _EMPNAME));
map.put(_EMPCOST, "Rs." + getValue(e, _EMPCOST));
// adding HashList to ArrayList menuItems.add(map);
menuItems.add(map);
}
ListAdapter adapter = new SimpleAdapter(this, menuItems,
R.layout.list_item,
new String[] { _EMPNAME, _EMPID, _EMPCOST }, new int[] {
R.id.name, R.id.id, R.id.cost });
setListAdapter(adapter);
}
private String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return this.getElementValue(n.item(0));
}
public final String getElementValue(Node ele) {
Node child;
if (ele != null) {
if (ele.hasChildNodes()) {
for (child = ele.getFirstChild(); child != null; child = child
.getNextSibling()) {
if (child.getNodeType() == Node.TEXT_NODE) {
return child.getNodeValue();
}
}
}
}
return "";
}
public void parseXml() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream in = getResources().openRawResource(R.raw.root1);
doc = db.parse(in, null);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我需要在从xml而不是ListView中获取一些数据时显示drawable文件夹中的图像。
答案 0 :(得分:0)
听起来您想要为您的ImageViews设置一个onClickListener,它将使用员工信息启动第二个Activity。
如果您有任何其他问题,我可以扩大我的答案。