ViewBinder中的条件操作

时间:2011-08-23 00:52:00

标签: android android-viewbinder

我希望停用ListView的订单项(使用SimpleCursorAdapter 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时,都会启用。发生了什么事?

1 个答案:

答案 0 :(得分:1)

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

获取列表项视图