2012-06-26 61 views
0

我創建了一個覆蓋onTouchListener的自定義視圖,以便根據用戶執行的操作使不同的圖像淹沒。 (例如,當用戶點擊它時改變視圖的背景)。ListView onItemClickListener從未觸發

我想在ListView中使用這個自定義視圖,所以我創建了一個顯示我所有視圖的自定義適配器,但是我的ListView的onItemClickListener從未被觸發。

我該怎麼辦?

下面的代碼從我的自定義視圖:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     setMode(MODE_SELECTED); 
     invalidate(); 
     break; 
    case MotionEvent.ACTION_UP: 
     setMode(MODE_NONE); 
     invalidate(); 
     break; 
    case MotionEvent.ACTION_CANCEL: 
     setMode(MODE_NONE); 
     invalidate(); 
     break; 
    case MotionEvent.ACTION_OUTSIDE: 
     setMode(MODE_NONE); 
     invalidate(); 
     break; 
    default: 
     break; 
    } 
    return true; 
} 
+1

您可能從您的onTouch偵聽器返回true,向系統表明您已處理該事件,因此它不會繼續向上傳遞,即傳遞給ListView的onItemClick。發佈你正在使用的代碼和你想要的結果,我們可以幫助你更多。 – FoamyGuy

+0

那麼,你可以做的第一件事是發佈你的代碼,以便其他人可以找出你錯在哪裏。 – Swayam

+0

在這裏添加相關代碼。 – Sajmon

回答

0

好吧,我找到了解決辦法:我用StateListDrawable,它避免了我重寫我的自定義視圖的onTouch!