2014-03-12 212 views
2

我想打電話給setOnLongClickListenergetView()方法返回的觀點,但似乎這是行不通的,這裏是我的代碼:BaseAdapter onLongClick沒有被解僱

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    ViewHolder viewHolder; 
    if (convertView == null) { 
     convertView = inflater.inflate(R.layout.list_item, parent, false); 
     viewHolder = new ViewHolder(); 
     viewHolder.date = (TextView) convertView.findViewById(R.id.date); 
     convertView.setTag(viewHolder); 
    } 
    viewHolder = (ViewHolder) convertView.getTag(); 
    convertView.setLongClickable(true); 
    convertView.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      // this code does not execute 
      return true; 
     } 
    }); 
    return convertView; 
} 
+0

但是,爲什麼你在'convertView'上實現了新的'OnLongClickListener()'?直接實現到'ListView' –

+0

@SimplePlan他這樣做'convertView.setOnLongClickListener(new OnLongClickListener(){'。convertView可能是膨脹的佈局 – Raghunandan

+0

把你的整個代碼。你有任何類型的錯誤?你在哪個視圖試圖添加監聽器? – GrIsHu

回答

0

您應該添加您長按監聽器到列表視圖,而不是內部適配器。像這樣:

listView.setOnItemLongClickListener(new OnItemLongClickListener() { 

      public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
        int position, long id) { 
       // TODO Auto-generated method stub 

       return true; 
      } 
     }); 
+0

我想處理適配器內部的事件 – user1940676

+0

你可以在onItemLongClick中做你想做的事情,你能告訴我你想要什麼嗎?要做什麼? – alicanbatur

+0

只需處理適配器內部的事件和n在其他地方,我可以在列表視圖上使用setOnItemLongClickListener,但我想知道爲什麼它不適用於適配器。 – user1940676