2014-04-23 4 views
0

Bonjour Amis Je cherche une solution à une analyse syntaxique XML ci-dessous est mon exemple de base de données: -données Obtention de fichier XML en fonction de la ItemClick de listView

 <inneritem id="1" title="Cells" thumbnail=""> 
      <Seconditem id="3" title="Intro" thumbnail="" /> 
      <Seconditem id="4" title="Erythroc" thumbnail="" /> 
      <Seconditem id="5" title="Band Nerophil" thumbnail="" /> 
      <Seconditem id="6" title="Segmented Ntrophil" thumbnail="" /> 
      <Seconditem id="7" title="Eosinil" thumbnail="" /> 
     </inneritem> 

     <inneritem id="2" title="Cells" thumbnail=""> 
      <Seconditem id="8" title="2Intro" thumbnail="" /> 
      <Seconditem id="9" title="2Erythroc" thumbnail="" /> 
      <Seconditem id="10" title="2Band Nerophil" thumbnail="" /> 
      <Seconditem id="11" title="2Segmented Ntrophil" thumbnail="" /> 
      <Seconditem id="12" title="2Eosinil" thumbnail="" /> 
     </inneritem> 

Maintenant ici j'avais mis l'article avec id 1 et 2 dans la liste et cliquez sur un élément par exemple si je clique sur Item avec l'ID 1, il me donnera l'ID 1 et sur son clic je veux charger les données avec tag Seconditem liés à l'ID 1 dans la nouvelle listview.So comment puis-je accomplir cela. Merci d'avance. En bref, je veux vérifier la condition des identifiants, puis charger les données afin de pouvoir vérifier ces conditions. Mon code pour le même est: -

  try { 

       InputStream is = getActivity().getAssets().open("public_material.xml"); 

       DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 


       Document doc = dBuilder.parse(is); 
       doc.getDocumentElement().normalize(); 

       doc.getElementsByTagNameNS("id", ItemsID); 
       NodeList nList = doc.getElementsByTagName("Seconditem"); 
       Log.d("List count :- ", "" + nList.getLength()); 
       for (int temp = 0; temp < nList.getLength(); temp++) { 
        Node GetEementNode = nList.item(temp); 
        if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) { 


         Element eElement = (Element) GetEementNode; 


         String strID = eElement.getAttribute("id"); 

         String Title = eElement.getAttribute("title"); 
         //String Thumbnail = eElement.getAttribute("thumbnail"); 


//      GetterSetter row = new GetterSetter(strID,Title, Thumbnail); 
         GetterSetter row = new GetterSetter(strID,Title); 
         arrList.add(row); 
        } 
       } 

      } catch (Exception e) { 

      } 

      BaseAdapterData data = new BaseAdapterData(getActivity(), arrList); 

      list2NewView.setAdapter(data); 

Répondre

1

C'est ce que je cherchais où public_material est mon xml dans lequel les données sont enregistrées: -

try{InputStream is = getActivity().getAssets().open("public_material.xml"); 

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 


        doc = dBuilder.parse(is); 
        doc.getDocumentElement().normalize(); 

        nList = doc.getElementsByTagName("inneritem"); 
        for (int temp = 0; temp < nList.getLength(); temp++) { 
         Node GetEementNode = nList.item(temp); 
         if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) { 

          eElement = (Element) GetEementNode; 
          String strID = eElement.getAttribute("id"); 

          if(strID.equals(ItemsID)){ 
           NodeList conditionList = eElement.getElementsByTagName("Seconditem"); 

           for(int secondTemp = 0; secondTemp<conditionList.getLength();secondTemp++){ 
            Node getSecondNode = conditionList.item(secondTemp); 
            if(getSecondNode.getNodeType() == Node.ELEMENT_NODE){ 
             Element SecondElement = (Element) getSecondNode; 
             String secondItemsDataID = SecondElement.getAttribute("id"); 
             String secondItemsData = SecondElement.getAttribute("title"); 
             GetterSetter row = new GetterSetter(secondItemsDataID,secondItemsData); 
             arrList.add(row); 

            } 
           } 
          } 
    //      String Title = eElement.getAttribute("title"); 
          //String Thumbnail = eElement.getAttribute("thumbnail"); 


    //      GetterSetter row = new GetterSetter(strID,Title, Thumbnail); 
    //      GetterSetter row = new GetterSetter(strID,Title); 
    //      arrList.add(row); 
         } 
        } 

       } catch (Exception e) { 

       } 
0

sur un clic de listview obtenir l'identifiant et la comparer avec le arrList.getStrId() en boucle et si des correspondances obtenir les données et faire ce que vous voulez ....

+0

Oui, mais c'est la chose que je veux dire, comment puis-je comparer l'ID que j'ai obtenu à partir du clic de listview avec l'ID xml de inneritem. –

+0

créer un GetterSetter qui contient également son identifiant parent et comparer avec lui – Dhananjay

0

Essayez ci-dessous le code:

list2NewView.setOnItemClickListener(new OnItemClickListener() 
     { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
      { 
        if(list2NewView.get(arg2).toString().equals(arrList.get(arg2).toString()) 
        { 
         // do your code here 
        } 
      } 
     }); 
Questions connexes