如何禁用Android中项目列表中的OnItemClick()?

时间:2011-04-06 04:20:12

标签: android

单击List项后,如何禁用OnItemClick()?我试图在网格视图中显示项目列表。一旦用户点击一个项目,他就不可能再次点击同一项目并再次触发onClick操作。

4 个答案:

答案 0 :(得分:2)

我认为你必须发挥作用。你需要做的是在onItemClickListener里面你维护被点击的项目列表。使用那个位置参数。

 lv.setOnItemClickListener(new OnItemClickListener() {      
 public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
 }

现在当点击项目时,你扫描之前是否按下了这个项目,如果它之前没有按下它什么都不做(你可以在再次点击它时自己完成任务)否则如果它第一次被点击,那么你必须做两个任务: 1.在点击的项目中标记其条目 2.完成你想要的任务。

答案 1 :(得分:0)

我认为你需要维持一些clickcount才能做到这一点。只要你点击它就会发现..它会调用onItemClick()否则你可以使clickable为假点击它所在的位置。

答案 2 :(得分:0)

编辑:我误解了这个问题。以下将阻止对整个列表的响应,而不是特定项目。 Kartik的反应要好得多。

list.setClickable(false)应该做的伎俩

http://developer.android.com/reference/android/view/View.html#setClickable(boolean

答案 3 :(得分:0)

谢谢大家。 是的,Kartik的想法会很好。我已通过以下方式解决了这个问题:

 gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            if(position==0){
                if(click1==0){
                point+=125;
                Toast.makeText(Rewards.this, "125 points added", Toast.LENGTH_SHORT).show();
                click1++;
                }
                else{
                    isEnabled(position);
                }                   
            }

 public boolean isEnabled(int position) { 
        boolean val=true;
        if(position==0){
            val=false;      
        }
 return val;
 }

您可以对所有位置使用相同的逻辑,它可以正常工作。