-1

我创建了一个项目,其中列表视图中有 20 个项目,其中我想禁用 15 个项目,除非它们被购买并且一旦它们被购买,它们就变得可点击,我尝试了以下代码:

setListAdapter(new ArrayAdapter<String>(QuantitativeAptitude.this,
            R.layout.row, quantList){

        @Override
        public boolean isEnabled(int position) {
             ListView lv = getListView();
                for (int i = 5; i <=20; i++){
                    View v = lv.getChildAt(i);
                    v.setEnabled(false);
                }
            return super.isEnabled(position);
        }

    });

但这无济于事,反而会使我的应用程序崩溃任何建议.....

4

1 回答 1

2

我相信您可能必须重写 isEnabled 方法,并在其中指定是否启用它的条件。为集合中的每个 listviewitem 调用此方法,例如:

@Override
public boolean isEnabled(int position) {
    if(CONDITION_GOES_HERE){
        return false;
    }
    return true;
}

可能有更好/更简单的方法来做到这一点,但这是首先想到的。

希望这会帮助你:)

于 2013-07-12T15:41:35.313 回答