如何根据特定条件给出不同的样式列表项?

时间:2012-05-08 15:02:29

标签: android android-layout android-listview

我使用适配器构建字符串列表,如何根据特定条件对这些项目应用不同的布局属性?

例如,假设您需要检查列表项的文本是否包含特定单词,然后根据测试结果,您希望增加或减少其边距(如果可以任何意义:D)。

2 个答案:

答案 0 :(得分:0)

您可以使用ContextThemeWrapper根据您的特定条件提供不同的主题。

答案 1 :(得分:0)

创建如下的适配器。这里只改变背景颜色,尝试根据你的条件改变布局......

    public class SpecialAdapter extends SimpleAdapter {
    private int[] colors = new int[] { 0x30FF0000, 0x300000FF };

    public SpecialAdapter(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) {
        super(context, items, resource, from, to);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = super.getView(position, convertView, parent);
      int colorPos = position % colors.length;
      view.setBackgroundColor(colors[colorPos]);
      return view;
    }
}

有关详细信息,请查看此链接http://eureka.ykyuen.info/2010/03/15/android-%E2%80%93-applying-alternate-row-color-in-listview-with-simpleadapter/