0

カンマで区切られた単語のリストであるタグと呼ばれる値があります。これをうまくデザインされた「タグボタン」に入れたいです。

以下は動作します。ただし、行((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;
    }
};
4

1 に答える 1

0

別の解決策は、表示されているビューのタグを含む文字列のセットを維持することです。すべてのビューを削除する代わりに、

if (set.contains (タグ))

ビューを追加する必要があるかどうかを判断します。繰り返しますが、これは単なる代替ソリューションです。相対的なパフォーマンスについてはわかりません。

于 2013-06-25T21:55:18.573 に答える