我有一个名为tags的值,它是以逗号分隔的单词列表。 我想把它放到设计精美的“标签按钮”中。
以下作品。但是,在我使用((LinearLayout) view).removeAllViews();
adapter.notifyDataSetChanged();
时多次添加标记,行setOnScrollListener()
似乎是一个丑陋的修复
这里有“最佳实践”的建议,或者至少是一个更好看的解决方案?
adapter = new SimpleAdapter(activity,data,
R.layout.list_transactions,
new String[] {"comment", "amount","date","tags","category"},
new int[] { R.id.comment, R.id.amount,R.id.date,R.id.tags_container,R.id.category }
);
SimpleAdapter.ViewBinder binder = new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object object, String value) {
//Log.d(TAG,"view.toString()= "+ view.toString());
if (view.getId() == R.id.tags_container)
{
String[] tags = value.split(",");
((LinearLayout) view).removeAllViews();
for (String tag : tags) {
View v = createTagView(activity.getLayoutInflater(),tag);
((LinearLayout) view).addView(v);
}
return true;
}
return false;
}
};
答案 0 :(得分:0)
另一种解决方案是维护一组字符串,其中包含要显示的视图的标记。而不是删除所有视图使用
如果(set.contains(标签))
确定是否应添加视图。同样,这只是一种替代解决方案。我不确定相对表现。