2013-01-08 107 views
0

我目前正在創建一個需要自定義列表視圖的應用程序。與我的列表視圖的一切都很好,但現在我需要知道,如何將onClickListener設置爲在我的list_row.xml中定義的視圖。我只想要onclicklistener整個項目,並在這一個內部視圖。我附上一張照片來證明我的問題,因爲它很難描述。 < 圖片(dropbox):https://www.dropbox.com/s/72xdxuwz47vl7s5/problem.png內部視圖上的自定義列表視圖onclicklistener

我需要一個函數,當點擊進入視圖[我的問題]表明。它的ImageView充滿了圖像。

回答

0

這是我以前做過的事,看起來很像你想要完成的事情。

首先,您聲明onItemClickListener爲您的ListView。這將處理標準的列表項目點擊(即,在列表項內但在您關心的內部視圖區域之外點擊)。您可以在代碼中的各種位置執行此操作,但onCreate()是常見的操作。

例子:

mListView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // Handle standard list item tap 
    // ... 
    } 
}); 

然後,你可以聲明任何onClickListener是你需要爲你的適配器的getView()方法中你內心的看法(縣)處理單擊/點擊事件在你的內心看法。

例子:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LinearLayout itemView; 

    // Inflate layout XML, etc. 
    // ... 

    // Find subviews in layout 
    ImageView innerView = (ImageView) itemView.findViewById(R.id.myInnerViewId); 

    // ... 

    // Set up onClickListener for inner view 
    innerView.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Handle inner view tap 
     // ... 
    } 
    }); 

    // ... 
} 
+0

運行完美。就像一個魅力:)提前謝謝你! – user1951516

0

要在每行中設置一個OnClickListener,只需擴展當前適配器並覆蓋getView()方法。在那裏你可以像平常一樣定義特定的監聽器。

這由羅曼蓋伊在Google Talk中詳細討論。