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="<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,它会自动格式化您的代码。您一直使用的 <>
按钮仅适用于 html、CSS 和 javascript。
感谢您的宝贵评论 :)) 这是我第一次在这里发表评论。
很高兴给新用户指点!您可以在帮助中心获得其他提示。 (在搜索框旁边的导航栏中有一个链接。)欢迎使用 Stack Overflow!以上是关于listView.setOnItemClickListener() 在 Android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章