如何在从xml解析的图像视图中显示数据

时间:2013-02-08 17:54:30

标签: java android

我想通过解析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文件夹中的图像。

1 个答案:

答案 0 :(得分:0)

听起来您想要为您的ImageViews设置一个onClickListener,它将使用员工信息启动第二个Activity。

如果您有任何其他问题,我可以扩大我的答案。