ListView ArrayAdapter,将子项隐藏在 Row 中?

2024-01-06

我觉得有点愚蠢,因为我找不到这个问题的答案,这让我觉得我实际上是在问wrong问题。然而,这里...

我有一个列表视图和一个在 xml 中定义的 listviewitem,有几个字段,没有什么特别的。全部设置为可见。

然后,我使用自定义 ArrayAdapter 绑定到 ListView,并想要隐藏第 5 行上的一个文本视图。但是,它似乎将我的 TextView 隐藏在第 0 项和第 5 项上。这有点奇怪?我简化了代码,以重现problem希望有人能够帮助我......

我的适配器

public class MenuScreenAdapter extends ArrayAdapter<String>
{
    private List<String> _items;
    private Context _context;

    public MenuScreenAdapter(Context context, List<String> items)
    {
        super(context, R.layout.list_menu_item, items);

        _context = context;
        _items = items;
    }

    private MenuScreenAdapter(Context context, int textViewResourceId)
    {
        super(context, textViewResourceId); 
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View v = convertView;

        if (v == null)
        {
            LayoutInflater vi = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.list_menu_item, null);
        }
        String o = _items.get(position);    
        if (o != null)
        {
            TextView tt = (TextView) v.findViewById(R.id.list_menu_item_name);
            if (tt != null)
                tt.setText(o);

            if (position == 5)
                tt.setVisibility(View.GONE);
        }
        return v;
    }
}

我的绑定码

    // Load everything up that we need
    List<String> items = new ArrayList<String>();
    items.add("One");
    items.add("Two");
    items.add("Three");
    items.add("Four");
    items.add("Five");
    items.add("Six");
    items.add("Seven");
    items.add("Eight");
    items.add("Nine");
    items.add("Ten");

    // Get the ListView, and set it's adapter. The HomeScreenAdapter
    // takes care of the rest
    ListView homeScreenListView = (ListView) _mainActivity.findViewById(R.id.view_home_list);
    homeScreenListView.setOnItemClickListener(ItemSelected);
    homeScreenListView.setAdapter(new MenuScreenAdapter(_mainActivity.getBaseContext(), items));

提前致谢!


由于行视图被 ArrayAdapter 重用,一旦设置了 View.GONE,它将继续到下一行,在该行中该视图将被重用。在您的情况下,您将 View.GONE 设置为第五行中的 textview,稍微移动列表,并且 arrayadapter 决定重用第五行布局来显示第一行,因为没有对其进行任何更改,所以 textView 仍然保持隐藏状态。

只需执行以下操作:

if (position == 5) {
            tt.setVisibility(View.GONE);
} else {
            tt.setVisibility(View.VISIBLE);
}

附:如果您还没有,请观看来自 google 的有关 ListViews 的演示。那里有大量有用的信息。列表视图 http://www.youtube.com/watch?v=wDBM6wVEO70

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ListView ArrayAdapter,将子项隐藏在 Row 中? 的相关文章

  • 在根项目“bin”中找不到任务“bintrayUpload”

    我遵循了将 AAR 文件发布到 JCenter 所需的每个步骤 然后使用 Maven Central 将其同步https github com danielemaddaluno gradle jcenter publish https gi
  • Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?

    我正在尝试获得一个FileInputStream用户从图片库中选择的图像上的对象 这是安卓URI由返回android provider MediaStore Images Media INTERNAL CONTENT URI content
  • 如何在应用程序关闭时在 Android 通知中显示操作按钮?

    我有一个安卓应用程序 对于通知 我们必须显示一些操作按钮 当应用程序打开时 我们可以自由地构建通知并显示操作按钮 但是当应用程序关闭时 通知会在 Android 的通知托盘中收到 应用程序开发人员无法控制构建用户界面和操作按钮 我们现在如何
  • 如何从Firebase Firestore实时更新文档中获取修改后的字段或数据? [复制]

    这个问题在这里已经有答案了 我有多个文档 我的问题是我无法获取修改的特定数据 我正在获取完整的文档 db collection employees whereEqualTo OID OID addSnapshotListener new E
  • 当满足条件时,如何以编程方式更改 ImageButton src 目标?

    我有一个学校项目 我正在尝试开发一个手电筒应用程序 对于开 关 ImageButton 我想要 4 个自定义图像 如果手电筒关闭 turn on png 默认 turn on pressing png 按下状态 true 如果手电筒打开 t
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 如何通过我的活动在 Android 中设置铃声?

    我正在尝试找到一种方法来通过 Android 活动中的代码设置新的默认铃声 我已经将铃声下载到bytearray 最后 我设法将默认铃声设置为我下载的铃声 下面不包含下载代码 仅包含将其设置为默认铃声所需的代码 File k new Fil
  • 改造中的多个队列导致内存不足错误?

    我正在使用retrofit2 做我的项目 当我的呼叫失败时 我再次重复相同的呼叫 重复此 呼叫使我的应用程序强制关闭 当我查看日志时 我得到了错误日志 如下所示 我觉得这是由于同一呼叫的多次排队造成的 所以我在排队之前就这样做了 我打电话给
  • 覆盖 Android 中的电源按钮

    我正在开发一个应用程序 其中我需要在按下电源按钮时执行一个操作 但不幸的是我无法处理按下电源按钮时的操作 我尝试使用 onKeyDown 和dispatchKeyEvent 方法 但似乎没有任何效果 任何人都可以建议我解决这个问题的任何其他
  • Android 全屏对话框确认和拒绝操作

    材料设计中的全屏对话框应该在操作栏 工具栏上有确认和拒绝操作 我的问题是 我该怎么做 显示对话框 getFragmentManager beginTransaction add R id container new MyDialogFrag
  • 需要 Android webview window.open() 和 window.close() 的信息

    我正在开发一个安卓应用程序 这是我网站的 WebView 该网站包含一个弹出按钮 单击该按钮后 将打开一个新窗口并显示内容 该链接可以来自外部站点 然而 当我实现此操作时 新选项卡正在打开 之后它会弹出以打开浏览器 尽管在 Web 视图中打
  • 从ListView中隐藏行而不占用空间

    我有一个带有关联 ArrayAdapter 的 ListView 它在多个活动中显示其内容 不幸的是 现在有必要 我的 ListView 在其中一项设置中不显示其所有元素 而仅显示 属性 未设置为 true 的元素 我想避免使用两个具有不同
  • 错误类型 3 - 活动类不存在

    我正在尝试运行 webRTC 应用程序 但返回以下错误 启动应用程序 com onlinevoicecallapp com onlinevoicecallapp MainActivity 设备外壳命令 am start n com onli
  • Android上如何获取ImageView的Drawable的矩形?

    我想要获取将包裹 ImageView 的 Drawable 的矩形对象 而不是包裹 ImageView 的矩形 我将使用该矩形在 Drawable 周围绘制一些奇特的矩形 我怎样才能得到那个矩形 Rect rect new Rect Ima
  • 将 java 中的 byte[] 转换为 C++ 中的 unsigned char* 的正确方法,反之亦然?

    我是 C 和 JNI 的新手 我尝试找到一种正确的方法 通过使用 JNI 将 java 中的 byte 转换为 C 中的 unsigned char 反之亦然 我正在安卓上工作 在谷歌和SO中寻找解决方案后 我还没有找到将java中的byt
  • 无法使用 findViewById() 找到视图

    我找不到TextView通过致电findViewById 即使 ID 确实存在 OtherActivity public class OtherActivity extends Activity Override protected voi
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • Android SearchView 在启动时隐藏键盘

    我有一个小问题正在尝试解决 当我打开应用程序时 键盘会显示输入搜索视图的查询 不过 我只想在单击搜索视图时显示键盘 我该如何解决 Thanks 这对我有用 用于隐藏焦点的代码 searchView SearchView view findV
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu

随机推荐

  • 使用 JavaScript 加载 HTML 模板

    我正在努力寻找一个干净的解决方案来解决我的问题 并且想知道是否有人可以提供一些提示 我有 templates html 其中包含我想要加载到 JavaScript 中并使用的 HTML 片段集合 记住 templates html 不是加载
  • ASP.NET 成员身份更改密码后旧密码仍然有效

    我在一个小网站中使用 ASP NET 成员身份验证 我刚刚在测试过程中注意到一些有趣的事情 我试图让用户能够随时更改其登录密码 我将更改密码控件拖到表单中 我更改了测试帐户的密码 但现在所有密码仍然有效 我可以使用旧密码登录 也可以使用此特
  • 如何在 Python 中使用 MATLAB 中的 unique(a, 'rows') ?

    我正在将一些内容从 MATLAB 翻译成 Python 语言 有这个命令 unique a 在NumPy http en wikipedia org wiki NumPy 但由于 MATLAB 程序也运行 rows 命令 因此它给出的结果略
  • 使用管道插件在 jenkins 2.0 上安装节点

    我正在运行以下 docker 镜像jenkinsci jenkins 2 0 rc 1尝试 jenkins 2 0 和 管道 视图 我似乎无法安装节点 这是我的管道脚本 node tool name node 5 10 1 type jen
  • 是否有系统范围版本的首选项 API?

    在上一个问题中 我了解了首选项 API 不幸的是 它似乎只是用户特定的偏好 我还需要能够跨用户设置首选项 在 Java 中 独立于平台的方法是什么 EDIT 下面的信息很好 但是自从实施以来我遇到了一个障碍 首先在我的开发盒上进行了测试 W
  • 使用 Runnable 作为回调/子例程是不好的做法吗?

    使用它是否被认为是不好的做法Runnable作为回调 考虑到Runnable旨在与线程一起使用 请参阅它的JavaDoc 我想知道这是否可以 或者我是否应该为此目的创建自己的接口 我所说的是这样的 public class KeyBindi
  • CSS:从 2 而不是 1 开始对页面进行编号

    在 CSS 中 使用 page top right content Page counter page of counter pages 打印页面时 我可以在每页的顶部显示页码 这很好用 但现在 我怎样才能使页码以 2 而不是 1 开头呢
  • 如何让 R 根据方差分析得出 F 统计量的临界值?

    R 中的方差分析缺少的一件事是它不会自动显示临界值 其他的一切都给了 我可以看出我的 F 值远高于应有的值 但我想知道截止点的余量 有一个在线计算器可以根据自由度生成 F 统计量的临界值 但我希望 R 能够做到这一点 http www da
  • “git checkout 标签名”与“git reset --hard 标签名”

    我知道有这样的问题this https stackoverflow com questions 2541545 is there a difference between git reset hard hash and git checko
  • lambda 演算中的 Beta 约简:求值顺序重要吗?

    给定以下 lambda 表达式 其中 类似于lambda kf f c co km x dox le le 如果我转换的话会有错误吗 c co k into ko 我这样做了 但显然这是错误的 正确的方法是首先评估外部函数 这意味着 f f
  • 为什么 Django 1.9 在设置和 URL 中用列表 [] 替换 tuples () ?

    我有点好奇为什么 Django 1 9 在设置 URL 和其他配置文件中用列表 替换 tuples 我刚刚升级到 Django 1 9 并注意到这些变化 它们背后的逻辑是什么 INSTALLED APPS django contrib ad
  • 带 Joda 时间的本地化日期格式,不含年份

    我正在尝试以本地格式显示日期 但没有年份 所以应该是 12 June for UK June 12 for US 用Joda时间可以实现吗 我们尝试过 dd MMMM 模式 但它不起作用 我们已经尝试过了StringFormat longD
  • 使用 lodash 构建 Angular 2 CLI

    导入总是导致错误 找不到模块 lodash import from lodash 角度 cli build js module exports function defaults return new Angular2App default
  • 面对非阻塞I/O如何设计状态机?

    我正在使用 Qt 框架 该框架默认具有非阻塞 I O 来开发一个应用程序 该应用程序可以浏览多个网页 在线商店 并在这些页面上执行不同的操作 我将特定网页 映射 到状态机 我用它来浏览该页面 该状态机具有以下转换 Connect LogIn
  • 使用主构造函数继承类

    我有一个父类如下 interface ITask open class Task val targetServer Server ITask 然后有一个子级继承它并覆盖主构造函数 如下所示 data class FileTask val s
  • 使滚动条在 UIScrollView 上始终可见?

    我需要使滚动条在 viewDidLoad 上始终可见 以便用户可以了解有内容可以滚动 我做了以下事情 myscrollView flashScrollIndicators 但是滚动条只会在 viewDidLoad 之后出现一段时间 然后再次
  • node.js fs - “向后”流文件 - 从下到上

    使用 Node js 将文件从文件系统流式传输到 Node js 但从下到上向后读取它的最佳方法是什么 我有一个大文件 如果我只想要最后 10 行 从顶部读取似乎没有多大意义 这可能吗 现在我有这个可怕的代码 我们使用浏览器执行 GET 请
  • NuGet - 找不到“添加库包引用...”

    我正在使用安装了 MVC3 的 Visual Studio 2010 SP1 由于我正在学习 NuGet 基础知识 因此我正在阅读本教程http maleevdimka com post NuGet Part 1 aspx http mal
  • Nativecript Fontawesome 5 iPhone 无法工作

    我正在尝试让 Font Awesome 5 在 Android 上运行 但它不起作用 使用https github com NathanWalker nativescript ngx fonticon https github com Na
  • ListView ArrayAdapter,将子项隐藏在 Row 中?

    我觉得有点愚蠢 因为我找不到这个问题的答案 这让我觉得我实际上是在问wrong问题 然而 这里 我有一个列表视图和一个在 xml 中定义的 listviewitem 有几个字段 没有什么特别的 全部设置为可见 然后 我使用自定义 Array