我可以找到基于文本的expandablelistview项目

时间:2011-05-26 20:45:16

标签: java android expandablelistview

这个sudo代码可以吗?

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

我无法弄清楚如何编码。如果您需要任何澄清,请与我们联系。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

这似乎是适配器类中的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有一些项目