2012-10-31 27 views
0

嘿,我做了一個自定義視圖組擴展相對佈局和重寫onTouchEvent(),並始終在onTouchEvent()返回true。我將這個自定義視圖組作爲我的listview的項目佈局。我還爲listview添加onItemClick監聽器。但我無法接收我的listview的onItemClick事件!有人能幫助我嗎?Android Listview不會收到onItemClick與自定義ViewGroup

非常感謝!

回答

0

如果您在onTouchEvent()中返回true,則會處理該事件,因此不會冒泡到ListView。嘗試返回false。

+0

如果我返回false,那麼以後我無法在視圖組中獲得其他MotionEvent。如何解決這個問題?謝謝! – DarkNeo

+0

如果你返回'super.onTouchEvent()',怎麼樣? – Jens

+0

super.onTounchEvent()將在這種情況下返回false。視圖組不會再收到ACTION_UP事件。 – DarkNeo

0

只使用onitemClick事件就夠我想只要你的問題而言

+0

不,我應該在MotionEvent down和MotionEvent時做一些工作。 – DarkNeo

+0

粘貼代碼 – Anirudh

+0

@覆蓋 公共布爾的onTouchEvent(MotionEvent事件){ 開關(event.getAction()){ 情況MotionEvent.ACTION_DOWN: doMyWork(); break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: endMywork(); break; 默認值: break; } return super.onTouchEvent(event); } – DarkNeo

1

只是difine onitemclick在適配器類getView(...),我認爲它會爲你

公共查看getView工作(最終詮釋的立場,觀點convertView,ViewGroup以及母公司){

View vi=convertView; 
    if(convertView==null) 
     vi = inflater.inflate(R.layout.list_row, null); 
    vi.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

     } 
    }); 
+0

我認爲這可以解決這個問題。謝謝! – DarkNeo

相關問題