listView.setOnItemClickListener() 在 Android 中不起作用

Posted

技术标签:

【中文标题】listView.setOnItemClickListener() 在 Android 中不起作用【英文标题】:listView.setOnItemClickListener() not working in Android 【发布时间】:2016-02-20 02:18:37 【问题描述】:

在我的 xml 中有两个列表视图(区域 1 和区域 2),区域 2 中有动态元素,当我单击任何项​​目时,它应该填充区域 1(另一个大小始终为 1 的列表视图)。我的问题是 itemClickListener 不起作用。

XML 是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_
android:layout_
android:background="@color/light_grey" 
>

<RelativeLayout
    android:id="@+id/top1"
    android:layout_
    android:layout_ >

    <RelativeLayout
        android:id="@+id/top"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"

 android:background="@drawable/listrow_layerlist_background_dark_purple"
        android:padding="10dp" >

        <LinearLayout
            android:id="@+id/linear_button"
            android:layout_
            android:layout_
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView_productName_size_color"
                android:layout_
                android:layout_
                android:hint="&lt;Scan or Type a Barcode to see Product    
 information here>"
                android:paddingLeft="5dp"
                android:textSize="12dp" />

            <LinearLayout
                android:id="@+id/linear1"
                android:layout_
                android:layout_
                android:layout_marginBottom="5dp"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"
                android:layout_marginTop="7dp"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="horizontal"
                android:weightSum="7.5" >

                <ToggleButton
                    android:id="@+id/toggleButton1"
                    android:layout_
                    android:layout_
                    android:layout_weight="1.5"
                    android:background="@drawable/bgtoggle"
                    android:button="@null"
                    android:checked="true"
                    android:textOff=""
                    android:textOn="" />

                <LinearLayout
                    android:layout_
                    android:layout_
                    android:layout_weight="3.5"
                    android:nextFocusLeft="@+id/editText_Price"
                    android:nextFocusUp="@+id/editText_Price" >

                    <EditText
                        android:id="@+id/editText_barcode"
                        android:layout_
                        android:layout_

                        android:ems="10"
                        android:gravity="bottom"
                        android:hint="Barcode"
                        android:longClickable="false"
                        android:singleLine="true"
                        android:textAppearance="?
android:attr/textAppearanceMedium"
                        android:textColor="@color/black" >

                        <requestFocus />
                    </EditText>
                </LinearLayout>

                <EditText
                    android:id="@+id/editText_Price"
                    android:layout_
                    android:layout_
                    android:layout_weight="0"
                    android:visibility="visible" />

                <LinearLayout
                    android:id="@+id/linear_fetch_barcode_data"
                    android:layout_
                    android:layout_
                    android:layout_marginRight="2dp"
                    android:layout_weight="1"
                    android:background="@drawable/listrow_layerlist_image"
                    android:gravity="center_vertical|center_horizontal" >

                    <ImageView
                        android:id="@+id/fetch_barcode_data"
                        android:layout_
                        android:layout_
                        android:src="@drawable/forward" />
                </LinearLayout>

                <Button
                    android:id="@+id/button1"
                    android:layout_
                    android:layout_
                    android:layout_alignBottom="@+id/align"
                    android:layout_alignTop="@+id/align"
                    android:layout_weight="1.5"
                    android:background="@drawable/camera_new"
                    android:textColor="@color/white"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

    <LinearLayout
        android:id="@+id/linear"
        android:layout_
        android:layout_
        android:layout_below="@id/top"
        android:background="@color/dark_color"
        android:visibility="visible" >

        <!-- <TextView -->
        <!-- android:id="@+id/total_scanned_pending_jobs" -->
        <!-- android:layout_ -->
        <!-- android:layout_ -->
        <!-- android:layout_margin="5dp" -->
        <!-- android:background="@drawable/rounded_edittext" -->
        <!-- android:gravity="left" -->
        <!-- android:paddingBottom="2dp" -->
        <!-- android:paddingLeft="8dp" -->
        <!-- android:paddingRight="8dp" -->
        <!-- android:paddingTop="2dp" -->
        <!-- android:singleLine="true" -->
        <!-- android:textColor="@color/black" -->
        <!-- android:textSize="11sp" /> -->

        <LinearLayout
            android:id="@+id/rl_first_block"
            android:layout_
            android:layout_
            android:background="@color/dark_color"
            android:gravity="center"
            android:orientation="horizontal"
            android:padding="2dp"
            android:visibility="visible"
            android:weightSum="2" >

            <LinearLayout
                android:id="@+id/rl_first_block1"
                android:layout_
                android:layout_
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/bg_header_left"
                android:orientation="vertical"
                android:paddingBottom="2dp"
                android:paddingLeft="8dp"
                android:paddingRight="8dp"
                android:paddingTop="2dp" >

                <LinearLayout
                    android:layout_
                    android:layout_
                    android:orientation="horizontal"
                    android:weightSum="2" >

                    <LinearLayout
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_
                            android:layout_
                            android:text="Products:"
                            android:textAppearance="?
 android:attr/textAppearanceSmallInverse"
                            android:textColor="@color/black"
                            android:textStyle="bold" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/txtProducts"
                            android:layout_
                            android:layout_
                            android:ellipsize="end"
                            android:gravity="right"
                            android:singleLine="true"
                            android:text="£ 2221245"
                            android:textAppearance="?
 android:attr/textAppearanceSmallInverse"
                            android:textColor="@color/black"
                            android:textStyle="bold" />
                    </LinearLayout>
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/rl_first_block12"
                    android:layout_
                    android:layout_
                    android:orientation="horizontal"
                    android:weightSum="2" >

                    <LinearLayout
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_
                            android:layout_
                            android:text="Quantity:"
                            android:textAppearance="?
 android:attr/textAppearanceSmallInverse"
                            android:textColor="@color/black"
                            android:textStyle="bold" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/txtQuantity"
                            android:layout_
                            android:layout_
                            android:ellipsize="end"
                            android:gravity="right"
                            android:singleLine="true"
                            android:text="£ 298989"
                            android:textAppearance="?
 android:attr/textAppearanceSmallInverse"
                            android:textColor="@color/black"
                            android:textStyle="bold" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            <!-- new -->

            <LinearLayout
                android:id="@+id/rl_first_block2"
                android:layout_
                android:layout_
                android:layout_marginBottom="5dp"
                android:layout_marginLeft="1dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_weight="1"
                android:background="@drawable/bg_header_right"
                android:gravity="center"
                android:orientation="vertical"
                android:paddingBottom="2dp"
                android:paddingLeft="8dp"
                android:paddingRight="8dp"
                android:paddingTop="2dp" >

                <TextView
                    android:layout_
                    android:layout_
                    android:text="Total (After Discounts)"
                    android:textColor="@color/black"
                    android:textSize="11sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/totalAmt_after_discounts"
                    android:layout_
                    android:layout_
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:text="£ 2343233252"
                    android:textAppearance="?    
 android:attr/textAppearanceMedium"
                    android:textColor="@color/purple"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/rl_bottom_btns"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:weightSum="4" >

        <Button
            android:id="@+id/btn_total_draft"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_weight="1"
            android:background="@color/darkgrey"
            android:orientation="horizontal"
            android:text=""
            android:textAllCaps="false"
            android:textColor="@color/white"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btn_save_draft"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@color/darkgrey"
            android:orientation="horizontal"
            android:text="New"
            android:textColor="@color/white"
            android:textSize="15sp" />

        <Button
            android:id="@+id/btn_goto_draft"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_weight="1"
            android:background="@color/darkgrey"
            android:orientation="horizontal"
            android:text="Open"
            android:textColor="@color/white"
            android:textSize="15sp" />

        <Button
            android:id="@+id/button_next"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_weight="1"
            android:background="@color/darkgrey"
            android:orientation="horizontal"
            android:text="Tender"
            android:textColor="@color/white"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear2"
        android:layout_
        android:layout_
        android:layout_below="@id/linear"
        android:layout_marginLeft="2dp"
        android:orientation="horizontal"
        android:visibility="gone" >

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:enabled="false"
            android:gravity="center"
            android:text="Barcode"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:enabled="false"
            android:gravity="center"
            android:text="Qty"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:enabled="false"
            android:gravity="center"
            android:text="Area"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:enabled="false"
            android:gravity="center"
            android:text="Location"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear3"
        android:layout_
        android:layout_
        android:layout_below="@+id/inflated_ll"
        android:layout_marginLeft="2dp"
        android:orientation="horizontal"
        android:visibility="gone"
        android:weightSum="4" >

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="0.6"
            android:enabled="false"
            android:gravity="left"
            android:paddingLeft="3dp"
            android:text="Name"
            android:textColor="@android:color/black"
            android:textSize="12sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="1.5"
            android:enabled="false"
            android:gravity="right"
            android:text="Quantity"
            android:textColor="@android:color/black"
            android:textSize="12sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="0.5"
            android:enabled="false"
            android:gravity="right"
            android:text="Price"
            android:textColor="@android:color/black"
            android:textSize="12sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:layout_
            android:layout_
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginTop="1dp"
            android:layout_weight="0.6"
            android:enabled="false"
            android:gravity="center"
            android:text="Total"
            android:textColor="@android:color/black"
            android:textSize="12sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

    <ListView
        android:id="@+id/listView1"
        android:layout_
        android:layout_
        android:layout_above="@id/rl_bottom_btns"
        android:layout_below="@id/inflated_ll"
        android:layout_marginTop="20dp"
        android:divider="@null"
        android:descendantFocusability="blocksDescendants"
         android:focusable="false"

         android:focusableInTouchMode="false"
          android:clickable="false"

        >
    </ListView>

    <ListView
        android:id="@+id/inflated_ll"
        android:layout_
        android:layout_
        android:layout_below="@+id/linear"
        android:background="#80000000"
        android:gravity="center"
        android:orientation="vertical"

        android:visibility="gone" >
    </ListView>
</RelativeLayout>

</RelativeLayout>
[enter image description here][1]

【问题讨论】:

for button use focusable false 请先在google上搜索一下 【参考方案1】:

如果您想更改您的ListView 中显示的数据,您需要在填充您的ListView 的适配器上调用notifyDataSetChanged()

因此,当单击按钮时,更改适配器中的数据并调用notifyDataSetChanged()

【讨论】:

【参考方案2】:

尝试设置

android:descendantFocusability="blocksDescendants">

到父布局并设置

android:clickable="false"
    android:focusable="false">

对于所有视图,这将使itemClickListener 正常工作。

【讨论】:

写答案时给您的快速提示: 按钮是您要格式化代码的按钮。您可以将代码粘贴到答案框中,突出显示所有内容,然后使用该按钮或按键盘上的 Ctrl + K,它会自动格式化您的代码。您一直使用的 &lt;&gt; 按钮仅适用于 html、CSS 和 javascript 感谢您的宝贵评论 :)) 这是我第一次在这里发表评论。 很高兴给新用户指点!您可以在帮助中心获得其他提示。 (在搜索框旁边的导航栏中有一个链接。)欢迎使用 Stack Overflow!

以上是关于listView.setOnItemClickListener() 在 Android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章