将ListView中的元素与一个适配器中的元素与另一个ListView和适配器中的值匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将ListView中的元素与一个适配器中的元素与另一个ListView和适配器中的值匹配相关的知识,希望对你有一定的参考价值。

我有下一个XML文件:

<?xml version="1.0" encoding="utf-8"?>
<myxml source-info-url="http://url.com/" source-info-name="URLName" generator-info-url="http://url.org/">
    <tag1 id="92">
        <display-name>1</display-name>
        <icon src="http://some_valid_url.gif" />
    </tag1>
    <tag1 id="107">
        <display-name>2</display-name>
        <icon src="http://some_valid_url.gif" />
    </tag1>
    <tag1 id="175">
        <display-name>3</display-name>
        <icon src="http://some_valid_url.gif" />
    </tag1>
    <tag1 id="346">
        <display-name>4</display-name>
        <icon src="http://some_valid_url.gif" />
    </tag1>
    <tag1 id="357">
        <display-name>5</display-name>
        <icon src="http://some_valid_url.gif" />
    </tag1>


    <tag2 attr1="" attr2="" tag1="92">
        <exampletag1>Text</exampletag1>
        <exampletag2 lang="en">Text</exampletag2>
        <exampletag3 id="21">Text</exampletag3>
        <desc lang="en">Text.</desc>
        <exampletag4>6</exampletag4>
    </tag2>
    <tag2 attr1="" attr2="" tag1="92">
        <exampletag1>&quot;Text&quot;.</exampletag1>
        <exampletag2 lang="en">Text</exampletag2>
    </tag2>
    <tag2 attr1="" attr2="" tag1="92">
        <exampletag1>Text.</exampletag1>
        <exampletag2 lang="en">Text</exampletag2>
    </tag2>

    <tag2 attr1="" attr2="" tag1="107">
        <exampletag1>&quot;Text&quot;.</exampletag1>
        <exampletag2 lang="en">Text</exampletag2>
        <exampletag3 id="22">Text</exampletag3>
        <exampletag3 id="32">Text</exampletag3>
        <exampletag3 id="21">Text</exampletag3>
        <desc lang="en">Text.</desc>
        <exampletag4>6</exampletag4>
    </tag2>
</myxml>

<tag2>将重复几千次。 <tag1>将重复数百次。

我用XMLPullParser解析了XML,创建了2个自定义适配器并创建了2个ListView:

listView.setAdapter(adapter);//include all of <tag1>
listView2.setAdapter(adapterPr);//include all of <tag2>

在默认情况下,我正在展示listViewlistView2GONE

所以现在我有两个ListViews充满了信息。很多信息。

通过点击listView中的项目,我想读取属性<tag1 id="">并将其与属性<tag2 tag1="107">进行比较。

如果比较成功 - 在qazxsw poi中仅显示具有此ID的项目。

通过单击后退按钮,我将返回listview2并希望一次又一次地重复此操作。

为此我尝试编写下一个OnItemClickListener(包括注释,也尝试没有listView):

for

但是我所尝试的一切都是错误的,我仍然无法实现我所需要的。

我想写下我执行此代码时发生的事情,但我明白我没有做任何事情来过滤 private List<ItemTAG1> items = new ArrayList(); private List<ItemTAG2> items2 = new ArrayList(); ... listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { for(int i=0; i<=items.size(); i++) { // ItemTAG1 itemTAG1 = adapter.getItem(position); // ItemTAG2 itemTAG2 = adapter2.getItem(position); ItemTAG1 itemTAG1 = items.get(i); ItemTAG2 itemTAG2 = items2.get(i); String tmpCI = itemTAG1.getTAGId(); String tmpPCI = itemTAG2.getTAG2id(); if (!tmpCI.equals(tmpPCI)) { listView.setVisibility(View.GONE); listViewProgrammes.setVisibility(View.VISIBLE); } else { // adapterPr.remove(item2); Toast.makeText(MyaActivity.this, "No data for this item!", Toast.LENGTH_SHORT).show(); } } 从某些项目listView2的无用项目,我不知道我应该为此做些什么。

我如何比较价值和在listView显示我需要什么?

答案

试试这个:

  1. 在ItemTag2类中,添加: listView2
  2. 将OnItemClickListener更改为: @Override public String toString() { return getTAG2id(); }

希望有所帮助!

以上是关于将ListView中的元素与一个适配器中的元素与另一个ListView和适配器中的值匹配的主要内容,如果未能解决你的问题,请参考以下文章

核心数据谓词 - 检查数组中的任何元素是不是与另一个数组中的任何元素匹配

滚动视图中的 Android 列表视图

无法从 SQLite 表中显示 ListView 元素

根据 listElement 键切换 listView 的委托

WPF中如何让一个元素与另一个元素重叠?

Android listview 的用法? 越详细越好。