通过代码在创建时突出显示 ListView 项目

2024-05-14

我想在创建 listView 时突出显示 ListView 的第一行 (0)。我尝试了不同的方法(就像您在注释代码中看到的那样),但没有任何效果。 这很奇怪,因为 OnItemClickListener 中的突出显示工作正常! (它通过 xml 选择器工作)。

我的片段中有这个方法,它由 onCreateView 调用:

    private void createListViewAll(View rootView, int listID, String[][] textList) 
    {
        MainListAdapter bindingData = new MainListAdapter(getActivity(), textList, true);
        ListView list = (ListView) rootView.findViewById(listID);
        list.setAdapter(bindingData);
        HelperListView.getListViewSize(list);

//      list.setItemsCanFocus(true);
//        list.setItemChecked(0, true);
//        list.setSelection(0);
//        list.setSelected(true);
//        list.requestFocus();
//
//      list.setSelection(0);
//      list.setSelected(true);
//      list.getChildAt( list.getHeaderViewsCount() - list.getFirstVisiblePosition() ).setSelected(true);
//      list.getChildCount();

//      bindingData.getCount();
//      View listItem = bindingData.getView(0, null, list);
//      listItem.setActivated(true);
//      listItem.setSelected(true);
//      list.invalidate();
//      list.isItemChecked(0);

        currentView = bindingData.getView(0, null, list);


        // Click event for single list row
        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) 
            {
                mItemSelected.onItemSelected(position);
                highlightView(view);
            }
        });

    }

    private void highlightView(View view) 
    {
        if (view != currentView)
        {
            if (currentView!=null)
            {
                currentView.isSelected();
                currentView.setBackgroundResource( R.drawable.gradient_bg );
                currentView.setSelected(false);
                //currentView.invalidate();
            }
            view.setSelected(true);
            currentView = view;
        }
    }

(currentView只是一个静态变量)

listAdapter 中的 getView:

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

    View vi=convertView;
    if(convertView==null)
    {
        vi = inflater.inflate(R.layout.list_row, null);
        holder = new ViewHolder();

        holder.titleRow = (TextView)vi.findViewById(R.id.titleRow); 
        holder.subtitleRow = (TextView)vi.findViewById(R.id.subtitleRow);

        vi.setTag(holder);
    }
    else{

        holder = (ViewHolder)vi.getTag();
    }

    if (position==0 && highlightFirstElement)
    {
        vi.setSelected(true);
        vi.setBackgroundResource( R.drawable.gradient_bg_hover );
    }

    if (textList!=null)
    {
        holder.titleRow.setText(textList[0][position]);
        holder.subtitleRow.setText(textList[1][position]);
    }
    else
    {
        holder.titleRow.setText( arguments[idSubject.get(position)] );
        holder.subtitleRow.setText(subTitle.get(position));
    }
    return vi;
}

在listview适配器类的getView方法中,从布局文件中获取文本的id并为其应用背景颜色。

例如,

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

         String inflater = Context.LAYOUT_INFLATER_SERVICE;
            LayoutInflater li = (LayoutInflater) my_ctx
                    .getSystemService(inflater);
            v = li.inflate(R.layout.layoutfile, parent, false);
                          if(position==0)
                           {

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

通过代码在创建时突出显示 ListView 项目 的相关文章

随机推荐

  • 用于 Kotlin 中单元测试的 BuildConfigField 模拟

    我正在尝试尽可能多地涵盖Kotlin Android 库我遇到了有关自定义 BuildConfig 变量的问题 更广为人知的是buildConfigField 我想模拟这个变量来测试两者true and false values 从 Gra
  • python + selenium webdriver:使用身份验证方法

    我正在使用 python selenium webdriver 来自动化检查 我被困在通过弹出窗口请求 http 身份验证的网站上 我试图通过以下代码使用 身份验证 方法 init driver webdriver Firefox driv
  • 如何制作像 Google+ 应用程序中那样的气泡? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有谁知道如何使用 Google An
  • 如何将 HTML 表格导出为 .xlsx 文件

    我有一个关于导出的问题HTML表格 as an xlsx文件 我做了一些工作 现在我可以将其导出为xls 但我需要将其导出为xlsx 这是我的 jsFiddle https jsfiddle net 272406sv 1 https jsf
  • C++类名冲突

    我现在正在做一个项目 需要整合两个子项目 项目A是用C 编写的 项目B是用C编写的 一个问题是 在项目B中 有一个名为vector它是由其作者创建的 在项目 A 中 std vector in STL用来 因为项目B以后可能会更新 所以我不
  • Qt Creator:在终端中运行

    我想获得在 Qt Creator 中运行程序的完整控制台功能 与此处描述的问题相同 使用 Qt Creator 进行控制台输入 https stackoverflow com questions 1356328 console input
  • 如何在 Firebase Firestore 中使用多个 orderBy 查询进行排序?

    如果我想根据这种情况对文档进行排序 选择有库存的产品 通过检查名为 count 的字段 指定产品的总件数 根据另一个称为 价格 的字段对元素进行排序 看起来很简单 只需使用这段代码 DBRef collection col where co
  • 如何获取 cElementTree 中某个元素的所有文本子元素?

    我正在使用cElementTreePython 中的模块用于获取某个文本的子级XML树 使用text财产 但它似乎只适用于直接文本子项 见下文 python gt gt gt import xml etree cElementTree as
  • 设置Paramiko模块的sftp.get()时间限制

    我正在使用 Paramiko 的 SFTP 客户端将文件从远程服务器下载到客户端 即获取操作 要传输的文件有点大 1GB 所以我希望如果时间超过10秒 get操作就会超时 但是设置连接的超时值不起作用 它似乎只是创建 SSH 连接的超时 而
  • Mongoid - 同一外域的两个域的逆

    我试图让以下 Mongoid 关系发挥作用 但每个团队的游戏字段都是一个空数组 这不是一个有效的关系模型吗 我是否需要分开比赛 即主场比赛和客场比赛 class Team include Mongoid Document has many
  • 有人能解释一下 C# 中接口的具体用法吗?

    有人能解释一下 C 中接口的具体用法吗 msdn 对此没有帮助吗 http msdn microsoft com en us library 87d83y5b aspx http msdn microsoft com en us libra
  • SciPy 曲线拟合参数的方差到底是多少? (Python)

    我目前正在 Python 中使用 scipy optimize 包的 curve fit 函数 并且知道 如果取从 curve fit 获得的协方差矩阵的对角线条目的平方根 您将获得 curve fit 参数的标准偏差计算出来的 我不确定这
  • 如何扩展我的发布配置文件以部署到多个位置?

    以下是为我的开发环境生成的发布配置文件
  • 上传进度条 Java Servlet?

    我想使用 servlet 显示上传进度条 我尝试过Ajax iFrame 技术 页面没有重新加载 文件也被上传 但是 进度条没有出现 有没有可用于 javaservlts 的 jQuery 进度插件 Thanks 我强烈推荐jQuery 上
  • 如何在 Perl 脚本中包含另一个文件中的函数?

    这似乎是一个非常简单的问题 但不知何故 我的 Google Fu 失败了 在 Perl 中包含其他文件中的函数的语法是什么 我正在寻找类似C的东西 include blah h 我看到了使用 Perl 模块的选项 但这似乎需要对我当前的代码
  • 使用 Python ftplib 获取远程 FTP 服务器中文件的 MD5 值

    使用 ftplib 将文件传输到服务器后 如何确定该文件与本地服务器中的文件的 MD5 from ftplib import FTP import hashlib ftp FTP server ftp login username pass
  • 使用 ansible 'Docker login' 和 _json_key Docker 登录到 GCE

    我正在尝试编写一个 ansible 角色 首先执行以下操作docker login从容器注册表中提取映像之前 将其复制到 GCE 实例 由于提到的问题 我需要这样做here https stackoverflow com questions
  • 具有不同返回类型的 C# 通用接口

    我有可以返回多种格式数据的网络服务 例如 json 和 xml 我正在针对此 Web 服务构建一个简单的 C api 我希望这些方法能够从 json 原始 json 或原始 xml 返回完全序列化的对象 例如 List
  • Grails - 如何对 addTo* 进行单元测试

    是否可以在 Grails 中对 addTo 函数进行单元测试 感谢您的帮助 文档第 9 1 节中说 http grails org doc latest guide 9 20Testing html 9 1 20Unit 20Testing
  • 通过代码在创建时突出显示 ListView 项目

    我想在创建 listView 时突出显示 ListView 的第一行 0 我尝试了不同的方法 就像您在注释代码中看到的那样 但没有任何效果 这很奇怪 因为 OnItemClickListener 中的突出显示工作正常 它通过 xml 选择器