扩展的SimpleCursorAdapter覆盖bindView在模拟器上运行良好,但在手机上运行不正常?

时间:2014-12-17 12:53:04

标签: android android-listview android-cursoradapter

我扩展了SimpleCursorAdapter,以便在选择项目时更改行背景颜色。

public class MyCursorAdaptor extends SimpleCursorAdapter 
{
    int SelectedItemPosition = -1;

    public MyCursorAdaptor(Context context, int layout, Cursor c, String[] from, int[] to, int flags) 
    {
    super(context, layout, c, from, to, flags);
  }

    @Override
    public void bindView(View view, Context context, Cursor cursor) 
    {
        super.bindView(view, context, cursor);
        // SelectedItemPosition value is set from onclick event
        if (cursor.getPosition() == SelectedItemPosition)
            view.setBackgroundColor(Color.LTGRAY);
        else
            view.setBackgroundColor(Color.WHITE);
    }
}

它在模拟器和我的Android平板电脑上运行良好,但不在我的Android手机上。正确显示所有项目,但选择项目时背景颜色不会更改。然后我发现实际上bindView在我的手机上根本没有被触发!?怎么可能!?

1 个答案:

答案 0 :(得分:0)

好的,我发现实际上我在平板电脑和模拟器上调用了bindView,每次点击列表视图,但在我的手机上只有在滚动列表视图时才调用bindView。