Hello Friends我正在寻找下面的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,并且在其点击时我想用标签加载数据Seconditem将id 1与新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);
答案 0 :(得分:1)
我正在寻找的是public_material是我的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) {
}
答案 1 :(得分:0)
点击listview获取id并将其与for循环中的arrList.getStrId()
进行比较,如果匹配获取数据并执行任何操作....
答案 2 :(得分:0)
尝试以下代码:
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
}
}
});