Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 根据listView的ItemClick从XML文件获取数据_Android_Xml Parsing - Fatal编程技术网

Android 根据listView的ItemClick从XML文件获取数据

Android 根据listView的ItemClick从XML文件获取数据,android,xml-parsing,Android,Xml Parsing,朋友们好,我正在寻找XML解析的解决方案,下面是我的数据库示例:- <inneritem id="1" title="Cells" thumbnail=""> <Seconditem id="3" title="Intro" thumbnail="" /> <Seconditem id="4" title="Erythroc" thumbnail="" /> <Sec

朋友们好,我正在寻找XML解析的解决方案,下面是我的数据库示例:-

        <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>

现在,我在listview中设置了id为1和2的项,并单击任何项,例如,如果我单击id为1的项,它将给我id为1,单击后,我想将带有与id为1相关的标记Seconditem的数据加载到新的listview中。那么我如何才能做到这一点呢。提前谢谢

简而言之,我想检查id的条件,然后加载数据,那么我如何检查这些条件呢。我的代码是:-

            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);
试试看{
InputStream is=getActivity().getAssets().open(“public_material.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
Document doc=dBuilder.parse(is);
doc.getDocumentElement().normalize();
getElementsByTagnames文件(“id”,ItemsID);
NodeList nList=doc.getElementsByTagName(“第二项”);
Log.d(“列表计数:-”,“”+nList.getLength());
对于(int-temp=0;temp
单击listview获取id,并将其与for循环中的
arrList.getStrId()进行比较,如果匹配,则获取数据并执行任何您想要的操作….

尝试以下代码:

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
                  }
            }
        });
list2NewView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3)
{
if(list2NewView.get(arg2.toString().equals)(arrList.get(arg2.toString())
{
//请在这里输入您的代码
}
}
});

这就是我一直在寻找的,其中公共材料是保存数据的xml:-

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) {

                }
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”);
对于(int-temp=0;temp对于(int secondTemp=0;secondTemp是的,但这就是我的意思,我如何将从listview中获取的id与inneritem的xml id进行比较。制作一个包含其父id的GetterSetter并与之进行比较