所以我有一个声音列表。当我单击列表项时 - 它会播放声音。当我单击包含布局时,它是列表项的一部分,它会执行其他操作。出于测试目的,我将图像作为按钮。它工作得很好 - 我点击列表项并播放声音,我点击图像,这是列表项的一部分,它做了其他动作。当我用布局替换图像作为列表项时。我点击列表项最终停止了工作。 Button工作正常。请参阅以下列表项目的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_gravity="center"
android:background="@android:color/white"
android:orientation="horizontal">
<ImageView
android:id="@+id/Imglogo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="16dp"
android:paddingTop="20dp"
android:src="@drawable/logo"
android:tint="#ffa500" />
<TextView
android:id="@+id/Text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="8"
android:fontFamily="sans-serif-medium"
android:gravity="left"
android:paddingLeft="16dp"
android:paddingTop="20dp"
android:textColor="#878787"
android:textSize="16sp" />
<include
android:id="@+id/buttonInsideListItem"
layout="@layout/some_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="16dp"
android:paddingRight="16dp"
android:paddingTop="20dp"
android:focusable="false"/>
更新:
我提供了java代码。
我通过适配器类处理列表项中的按钮:
View buttonInsideListItem = (View) listItemView.findViewById(R.id.buttonInsideListItem);
buttonInsideListItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Some stuff I cannot reveal
}
});
我在主要活动中单击列表项目:
ListView listView = (ListView) findViewById(R.id.list);
listView.setFocusableInTouchMode(true);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
//List item click is handled here
}
}
});