我有layout
以下ListView
已被用作<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/schedule_row_content"
android:background="@drawable/item_selector" android:layout_width="fill_parent" android:layout_height="60dp">
<TextView android:gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:textColor="#000000" android:id="@+id/labelLessonNumber" android:text="1" android:layout_width="27dp"></TextView>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px" android:layout_weight="1" android:layout_gravity="center_vertical">
<TextView android:layout_height="wrap_content" android:textColor="#000000" android:id="@+id/labelSubject" android:layout_width="fill_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Text"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="#555555" android:layout_width="wrap_content" android:id="@+id/labelTime" android:text="00:00"></TextView>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:gravity="center" android:width="80dp" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:id="@+id/labelGroup" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Klasa Ia"></TextView>
</LinearLayout>
</LinearLayout>
的一行:
layout
我想使用此ListView
创建自定义按钮(与onClick
内部工作方式相同)。是否有任何容器从内部视图中捕获{{1}}个事件?
答案 0 :(得分:1)
如果只需要点击按钮,那么一个简单直接的解决方案就是采用线性布局并将其背景设置为自定义选择器drawble,然后在java代码中简单地设置此线性布局的onclick监听器
在您的情况下,我们可以为所有列表项设置一个公共点击侦听器,但可以通过为所有列表项按钮设置不同的标记对象来区分。
我希望它有所帮助..
答案 1 :(得分:0)
我不确定您是否可以将布局用作自定义按钮,因为它的可点击标记应设置为true。如果这样做,它将捕获onClick事件,并且您将遇到ListView问题。尝试设置android:clickable =&#34; true&#34;你的布局和使用包括标签:
<include android:id="@+id/your_layout"
layout="@layout/your_layout"
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
答案 2 :(得分:0)
无需将任何内容放入按钮,您需要可点击的布局,因此为此目的,只需使用它。
<LinearLayout
android:clickable="true"
android:background="@android:drawable/btn_default"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@android:drawable/ic_input_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
<TextView
android:id="@+id/text"
android:text="Sample text"
android:textAppearance="?android:attr/textAppearanceButton"
android:layout_toRightOf="@id/image"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
所以 android:clickable =“true”会使布局可点击,并且会像按钮一样运作:)希望这有用。