即使在失去焦点后如何突出显示选定的列表项?

发布于 2024-12-09 14:58:06 字数 203 浏览 0 评论 0原文

我正在构建的活动之一包含一个 ListView 和一个 GridView。 gridview 的内容将根据 ListView 中选择的项目进行更新。现在,我使用选择器通过更改背景来突出显示 ListView 中的所选项目。但是一旦 ListView 失去焦点,所选项目就不再突出显示。有没有办法即使在列表视图失去焦点后也可以突出显示列表项?

One of the activities I'm building contains a ListView, and a GridView. The contents of the gridview will be updated based on the item selected in the ListView. Now, I'm using a selector to highlight the selected item in ListView by changing its background. But once the ListView loses focus, the selected item is not highlighted anymore. Is there a way to have the list item highlighted even after the focus is lost by the list view?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骄兵必败 2024-12-16 14:58:07

设置您的选择器以识别激活状态

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Selected Item -->
    <item android:state_selected="true"
        android:drawable="@android:color/holo_blue_light" />
    <item android:state_activated="true"
        android:drawable="@android:color/holo_blue_light" />

    <!-- Default Item -->
    <item android:state_selected="false"
        android:drawable="@android:color/white" />
</selector>

,不仅选择,而且激活onListItemClick

@Override
    public void onListItemClick(ListView listView, View view, int position,
            long id) {
        super.onListItemClick(listView, view, position, id);

        view.setSelected(true);
        view.setActivated(true);
}

Set your selector to recognize the activated state

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Selected Item -->
    <item android:state_selected="true"
        android:drawable="@android:color/holo_blue_light" />
    <item android:state_activated="true"
        android:drawable="@android:color/holo_blue_light" />

    <!-- Default Item -->
    <item android:state_selected="false"
        android:drawable="@android:color/white" />
</selector>

And not only select, but activate it onListItemClick

@Override
    public void onListItemClick(ListView listView, View view, int position,
            long id) {
        super.onListItemClick(listView, view, position, id);

        view.setSelected(true);
        view.setActivated(true);
}
心的憧憬 2024-12-16 14:58:07

我认为您想维护某些列表的单击项目的状态。为此,您可以使用布尔 ArrayList 来维护列表每一行的状态。您可以在 Adapter 的 getView() 中使用这个 ArrayList。根据状态设置背景。例如,在 getView() 中设置 View 的背景图像或颜色。 这里是我正在谈论的一个想法。您也可以将其用于您的目的。

I think you want to maintain the state of the clicked Item of some List. For this you can use a boolean ArrayList to maintain the state for every row of list. And you can use this ArrayList in the getView() of your Adapter. Set the background depending on the state. e.g. Set the background image or color of the View in getView() . Here is an idea that I am talking about. You can use it for your purpose as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文