これは、あなたが達成したいこととかなり似ていると思われる前に私がやったことです。
まず、 に対して を宣言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
// ...
}
} );
// ...
}