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
存在时,全部启用。到底是怎么回事?
I wish to disable a line item for my ListView
(using SimpleCursorAdapter
with ViewBinder
), but it doesn't work:
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);
}
When I remove else
, it disables them randomly, when if-else
exists, all are enabled. What is going on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看来,view.getRootView()返回最顶层的视图(可能是ListView),其中包含许多行,并且所有行都有id R.id.line_item。所以它可能会返回相当随机的视图。
您可以尝试使用
view.getParent()
获取列表项视图It seems, that
view.getRootView()
returns topmost view (probably ListView), which contains many lines and all of them have id R.id.line_item. So it may return pretty random view.You can try get list item view using
view.getParent()