将布局作为列表项包含时,列表项单击停止工作

时间:2017-02-25 13:13:38

标签: android xml android-layout

所以我有一个声音列表。当我单击列表项时 - 它会播放声音。当我单击包含布局时,它是列表项的一部分,它会执行其他操作。出于测试目的,我将图像作为按钮。它工作得很好 - 我点击列表项并播放声音,我点击图像,这是列表项的一部分,它做了其他动作。当我用布局替换图像作为列表项时。我点击列表项最终停止了工作。 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
            }

        }
    });

0 个答案:

没有答案