首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView切换选择模式

ListView切换选择模式
EN

Stack Overflow用户
提问于 2011-12-14 18:05:29
回答 3查看 6K关注 0票数 0

我有一个ListView (从技术上讲它是一个ListFragment,但我不认为这改变了问题),它使用SimpleCursorAdapter来显示结果。

代码语言:javascript
复制
    adapter = new SimpleCursorAdapter(
            getActivity(),
            R.layout.item,
            null,
            new String[] {"Name"},
            new int[] {R.id.Name}
            );

    setListAdapter(adapter);

(光标在onStart中设置/交换)。

我想让用户能够切换选择模式(该模式将用于仅显示选中的项目)。有点像一个短信应用程序,当你把信息放在“批处理模式”,允许你选择多个对话,可以删除,保存等。我是设置一个新的适配器或只是改变现有的属性?无论如何,ListView都需要重新绘制以反映更改。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-14 22:53:23

这是一个令人惊讶的简单答案。问题是在onCreateView膨胀List之前,我在onCreate中调用了这个方法。简单地说,这只是为了测试功能。一旦我把它移到onStart,然后移到它在FragmentActivity中的预定位置,下面的操作就可以正常工作了:

代码语言:javascript
复制
public void toggleAdapter()
{           
    ListView listView = getListView();

    if (listView.getChoiceMode() == ListView.CHOICE_MODE_MULTIPLE)
    {
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        adapter = new SimpleCursorAdapter(
                getActivity(),
                R.layout.item,
                dashboardCursor,
                new String[] {"Name"},
                new int[] {R.id.Name}
                );
    }
    else
    {
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        adapter = new SimpleCursorAdapter(
                getActivity(),
                R.layout.dashboard_list_item_multiple_choice,
                dashboardCursor,
                new String[] {"Name"},
                new int[] {R.id.Name}
                );
    }


    listView.setAdapter(adapter);
}
票数 0
EN

Stack Overflow用户

发布于 2011-12-14 18:14:55

你必须做两件事。

  1. 使用ListView的setChoiceMode方法在ListView上启用MULTI_SELECT。
  2. 创建一个‘选择器’来定义‘选中’或‘选中’状态,并将其设置为R.layout.item.

上的样式元素

票数 1
EN

Stack Overflow用户

发布于 2013-06-20 03:02:46

就像Vikram Bodicherla回答。

  1. setChoiceMode在ListView上启用MULTI_SELECT。
  2. 在自定义项目布局中设置显示选定状态的背景,如下所示:

android:background="?android:attr/activatedBackgroundIndicator"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8502654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档