CustomSimpleCursorAdapter,bindView android的时间

时间:2015-01-20 19:51:41

标签: android

我想清楚我的想法是什么时候运行bindView。

我已经看到很多解决方案通常会搜索列表视图中的所有元素, (假设它是3:1 ImageView和2 TextViews),然后简单地在每个上应用想要的方法。 (天气它的setText / setImageResource)

但我认为bindView(View v...)针对特定行设置newView时为每个元素运行,这意味着v正是您想要的元素!

这意味着优化的解决方案不像我常见的那样findViewById,而是看看你在切换案例场景中的位置:

public void bindView(View view, Context context, Cursor c) {
        switch (view.getId()){
        case R.id.listImageViewPlace:
            ((ImageView)view).setImgResource(...);
            break;
        case R.id.tvListItemName:
            ((TextView)view).setText(c.getString(c.getColumnIndex(PlacesDBHelper.NAME_COL)));
            break;
        case R.id.tvListDistance:
            ...
            break;
        }
    }

虽然我主要看到的解决方案是:

    public void bindView(View view, Context context, Cursor c) {
        ImageView img = ((ImageView)view.findViewById(R.id.imgView)).setImgResource(...);
TextView tv = ((TextView)view.findViewById(R.id.tv)).setText(...);
    }

每次bindView不在您要设置的特定视图上时,最后一个代码都有很多空白工具。

我弄错了什么?

0 个答案:

没有答案