2011-12-01 127 views
0

我想disable all list itemsListView除第一个位置项目。在ListView中禁用列表项目

这意味着每次只能点击第一个项目而不是全部。

我该怎么做。有什么办法吗? 给我一些示例代码。

回答

1
<ListView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:listSelector="@android:color/transparent" /> 


    ListView lv = ... 

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { 

     if(position == 1) 
     { 
     view.setBackgroundColor(Color.GREEN); 
     } 

    } 
}); 
+0

我想禁用。如果你点击特定的项目,那么listitem的颜色就会改变。但我不希望这样,颜色不应该改变。 – Jyosna

+0

只有第一项颜色必须更改? –

+0

我做到了,但是包括第1项在内全部颜色正在变化。只有活动正在为第一项工作。但所有颜色都会改变。我不想那样。 – Jyosna

0

在这里你必须从ListView的项目创建自定义适配器,并使用不同的颜色为第一项和自定义适配器的getView方法的项目的其余部分则其他项的禁止click事件不包括第一位置

+0

ü可以给我一些示例代码 – Jyosna

+0

你有自定义适配器上工作过的ListView? – bindal

+0

是我使用自定义适配器仅 – Jyosna

2

我得到了我的答案。只有我必须在自定义适配器中使用两种覆盖方法,

@Override 

    public boolean areAllItemsEnabled() { 
     return false; 
    } 

    @Override 
    public boolean isEnabled(int position) { 
     return true; 
    } 
+0

如果项目包含可点击美景无效(按钮,edittexts等)里面 –

+0

谢谢!重写isEnabled(int position)完美工作 – Aliya