0

我希望为我的ListView(使用SimpleCursorAdapterwith ViewBinder)禁用一个行项目,但它不起作用:

public boolean setViewValue(View view, final Cursor cursor, int columnIndex) {
        int viewId = view.getId();
        switch (viewId) {
          case R.id.my_view_status_value:

int viewVal = cursor.getInt(columnIndex);

if(viewVal == 0) {
   //disable this line item
   view.getRootView().findViewById(R.id.line_item).setEnabled(false);
} else {
   //enable
   view.getRootView().findViewById(R.id.line_item).setEnabled(true);
}

当我删除else时,它会随机禁用它们,如果if-else存在,则全部启用。到底是怎么回事?

4

1 回答 1

1

看起来,它view.getRootView()返回最顶层的视图(可能是 ListView),其中包含许多行,并且所有行都有 id R.id.line_item。所以它可能会返回相当随机的视图。您可以尝试使用获取列表项视图view.getParent()

于 2011-08-23T01:03:02.183 回答