【问题标题】:Can i find an expandablelistview item based on text我可以根据文本找到可扩展列表视图项目吗
【发布时间】:2011-05-26 20:45:16
【问题描述】:

这个sudo代码可以吗?

for (all children in my custom expandable list) {
     if (childItemText.equals("This string") {
           viewWithTextIWant.setBackgroundResource(R.color.blue)
     }
}

我不知道如何编码。如果您需要任何说明,请告诉我。

【问题讨论】:

    标签: java android expandablelistview


    【解决方案1】:

    我用我的应用做了类似的事情。我查看了 Android Developer 站点上的 ExpandableListView 小部件。它似乎没有任何 get 方法可以让您比较 ExpandableListView 中项目的字符串值。

    你需要做的是创建你自己的字符串数组来保存你想要的字符串值。然后使用ExpandableListView 的get 方法返回所选项目的位置并将其与您的字符串数组进行比较。

    换句话说,get 方法将返回值"i"。使用myStringArray[i].equals("This string") 比较字符串值。

    【讨论】:

    • @yellavon:ExpandedListView 有一些您可以使用的“onclick”侦听器。 This 可能是您正在寻找的那个。您可以将代码放入该侦听器的 onChildClick 函数中。
    【解决方案2】:

    您的 Adapter 类中的 getChildView 似乎是一项任务。

    我对 ExpandableListView 中的组做了同样的事情:

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        String groupText = (String) ((Map<String,?>) mGroupData.get(groupPosition)).get(KEY);
        View v = groupText.startsWith(SEARCH_TERM) ?
                            mInflater.inflate(R.layout.layout_1, null) : mInflater.inflate(R.layout.layout_2, null); 
        TextView tv = (TextView) v.findViewById(R.id.mytext);
        tv.setText(groupText);
        return v;       
    }
    

    警告!这段代码没有优化,它膨胀了每一个项目,这很昂贵。就我而言,我并不担心,因为我的 ExpandableListView 有一些项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多