Я обнаружил, что вам нужно сделать:
android:focusable="false"
для каждого элемента, который вы хотите щелкать в вашем пользовательском представлении строки (например, я поместил это в imPlay, llFirstHalf, llSecondHalf и cbCheck).Создайте прослушиватели onClick для областей, в которых вы хотите, чтобы они были кликабельными внутри этого представления.Мой пример сделал 4 кликабельных области в моем виде строки списка.
@Override
public void bindView(View v, Context context, Cursor c) {
ImageView imPlay = (ImageView) v.findViewById(R.id.row_play_button);
LinearLayout llFirstHalf = (LinearLayout) v.findViewById(R.id.row_first_half);
LinearLayout llSecondHalf = (LinearLayout) v.findViewById(R.id.row_second_half);
CheckBox cbCheck = (CheckBox) v.findViewById(R.id.row_checkbox);
imPlay.setOnClickListener(this);
llFirstHalf.setOnClickListener(this);
llSecondHalf.setOnClickListener(this);
cbCheck.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.row_checkbox:
Log.e("ListAdapter onClick","checkbox");
break;
case R.id.row_first_half:
Log.e("ListAdapter onClick","row first half");
break;
case R.id.row_second_half:
Log.e("ListAdapter onClick","row second half");
break;
case R.id.row_play_button:
Log.e("ListAdapter onClick","play button");
break;
}
}