0

我正在使用 XML 解析器。我必须将一个 id 从一个活动传递给另一个,但是这个 id 没有显示在第一个屏幕的 textview 中。我怎样才能将这个 id 传递到另一个屏幕。

这是我的代码:

            XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_ITEM);
        // looping through all item nodes <item>
        for (int i = 0; i < nl.getLength(); i++) 
        {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            map.put(KEY_ID, parser.getValue(e, KEY_ID));
            map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
            map.put(KEY_LASTVALUE,parser.getValue(e, KEY_LASTVALUE));
            map.put(KEY_CHANGE, parser.getValue(e, KEY_CHANGE));
            map.put(KEY_STKEXCHANGE, parser.getValue(e, KEY_STKEXCHANGE));  
            map.put(KEY_LASTPRICE, parser.getValue(e, KEY_LASTPRICE));  

            // adding HashList to ArrayList
            menuItems.add(map);
        }

在这里,我必须在单击特定元素值时传递 id,我该怎么做:

lv.setOnItemClickListener(new OnItemClickListener() 
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
//              String name = ((TextView) view.findViewById(R.id.name_label)).getText().toString();
//              String cost = ((TextView) view.findViewById(R.id.cost_label)).getText().toString();
//              String description = ((TextView) view.findViewById(R.id.description_label)).getText().toString();
                // Starting new intent
                Intent in = new Intent(getApplicationContext(), IndicesDetails.class);
//              in.putExtra(KEY_STKEXCHANGE, name);
//              in.putExtra(KEY_COST, cost);
//              in.putExtra(KEY_DESC, description);
//              string ids = getItemId(position);               
//              in.putExtra("idvalue", id);
                startActivity(in);

            }
        });
4

2 回答 2

0

在当前活动中:

 public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // Starting new intent
                Intent in = new Intent(getApplicationContext(), IndicesDetails.class);              
                in.putExtra("idvalue", id);
                startActivity(in);
            }

然后在新活动中,检索这些值:

Bundle extras = getIntent().getExtras();
if(extras !=null) {
long value = extras.getLong("idvalue");
}
于 2012-05-08T03:56:50.673 回答
0

尝试类似的东西可能会有所帮助。

public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
    HashMap map=yourArrayList.get(position);
    String id=map.get("Your key");

    in.putExtra("idvalue", id);

    }
于 2012-05-08T05:24:13.643 回答