Java 显示产品属于使用xml解析的android listview中的类别

Java 显示产品属于使用xml解析的android listview中的类别,java,android,listview,xml-parsing,Java,Android,Listview,Xml Parsing,我必须在android listview应用程序中通过xml解析传递类别、子类别和产品详细信息 This is my xml feed: <Feed> <category> <Category> <Categoryname>Books</Categoryname> <SubCategory> <subcategor

我必须在android listview应用程序中通过xml解析传递类别、子类别和产品详细信息

This is my xml feed:

<Feed>
    <category>
        <Category>
            <Categoryname>Books</Categoryname>
            <SubCategory>
                <subcategoryname>Internet</subcategoryname>
                <Product>
                    <Name>New Masters of Flash</Name>
                    <Price>79.99</Price>
                </Product>
                <Product>
                    <Name>Professional Java Server Programming</Name>
                    <Price>63.99</Price>
                </Product>
            </SubCategory> 
            <SubCategory>
                <subcategoryname>Software</subcategoryname>
                <Product>
                    <Name>Krishnaveni</Name>
                    <Price>79.99</Price></Product>
                <Product>
                    <Name>Veeman</Name>
                    <Price>63.99</Price>
                </Product>
            </SubCategory>
        </Category>
    </category>
</Feed>
---->在我必须点击互联网之后,意味着我将获得该特定(互联网)类别的产品。 它们是:

Internet
Software
New Masters of Flash
Professional Java Server Programming
如果我必须单击第二个子类别(软件),意味着我必须获得以下结果:

Krishnaveni
Veeman
在这里,我只面临一些问题

在这里,我必须单击internet子类别表示我得到4个产品。同样的方法也适用于软件。我必须单击软件子类别表示我得到4个产品

我如何开发这个。请帮助我。我如何才能获得该特定子类别的产品

这是我的编码部分:

public class AndroidXMLParsingActivity extends Activity {
static final String URL = "http://192.168.1.168/xcart432pro/feed.xml";
 private static final int Tech = 0;

 static String KEY_CATEGORY = "Category";
 static final String KEY_TITLE = "Categoryname";

ListView lview3;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
    XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML from URL
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_CATEGORY);

        // looping through all song nodes &lt;song&gt;
        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);


            map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));

            songsList.add(map);
        }
    lview3 = (ListView) findViewById(R.id.listView1);
    adapter = new LazyAdapter(this, songsList);
    lview3.setAdapter(adapter);

    lview3.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            HashMap<String, String> map = songsList.get(position);
         switch (position)
         {
             case Tech:
                 Intent tech = new Intent(AndroidXMLParsingActivity.this, com.androidhive.xmlparsing.SubCate.class);
                 tech.putExtra(KEY_TITLE, "Books");
                 startActivity(tech);   
                 break;


             default:
                 break;
         }
        }  

     });
在第行下面添加onCreate函数之后:

    Bundle bdl = getIntent().getExtras();
    KEY_CATEGORY = bdl.getString(KEY_TITLE);
我还在第三个活动(catalog.java)中添加了一些代码

首先声明密钥_SUBCATE:

static  final String KEY_SUBCATE = "subcategoryname";
必须在onCreate()函数后添加以下行:

      Bundle bdl = getIntent().getExtras();
      KEY_CATEGORY = bdl.getString(KEY_SUBCATE);

现在我必须运行应用程序,这意味着am没有获得任何产品。请帮助我。我如何才能获得正确类别的产品。

只需在单击子类别之前对每个产品进行
最终
。我想你的问题会解决的。如果你不做出这些最终的决定,你每次都会处于最后的位置

我想您可以在这里发送产品表单:---

只需替换它:---


请详细解释。我必须在这里更改哪个文件和行。例如:-final int temp\u veriable=ur\u current\u value;然后放入temp_变量,它将根据您的位置取值。我只在每个产品上使用了最终值。请检查我的code@DeepankerChaudhary不,是的。现在我也只得到相同的输出
    Bundle bdl = getIntent().getExtras();
    KEY_CATEGORY = bdl.getString(KEY_TITLE);
static  final String KEY_SUBCATE = "subcategoryname";
      Bundle bdl = getIntent().getExtras();
      KEY_CATEGORY = bdl.getString(KEY_SUBCATE);
      map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
       map.put(KEY_DESCRIPTION, parser.getValue(e, KEY_DESCRIPTION));
        map.put(KEY_COST, parser.getValue(e, KEY_COST));
final  String key_title=parser.getValue(e, KEY_TITLE);
final String key_desc=parser.getValue(e, KEY_DESCRIPTION);
fiinal String key_cost=parser.getValue(e, KEY_COST);


    map.put(KEY_TITLE, key_title);
       map.put(KEY_DESCRIPTION, key_desc);
        map.put(KEY_COST, key_cost);