如何使线性布局中的所有内容成为一个可点击的项目

时间:2013-07-25 13:27:55

标签: android android-layout

我想在android中创建一个以线性布局为主视图的链接。在每一行中都会有一个水平线性布局,每一行都会有一个图像,一个描述,一个价格和一个id(不会显示)。

一旦我列出了所有项目的列表,我希望用户能够点击行中的任何位置,然后它会执行一些操作。我怎样才能做到这一点?我已尝试在linearlayout上设置clickable = true:

这是我的xml代码:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:onClick="menuItemSelected" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/burger" />

    <TextView
        android:id="@+id/editText1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="textMultiLine"
        android:text="This a pictuer of a hamburger" />

    <TextView
        android:id="@+id/editText2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:ems="10"
        android:inputType="numberDecimal"
        android:text="R41.24" />
</LinearLayout>

<LinearLayout
    android:id="@+id/tableRow12"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:onClick="menuItemSelected" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="Product Image"
        android:src="@drawable/burger" />

    <TextView
        android:id="@+id/editText21"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="textMultiLine"
        android:text="This a pictuer of a hamburger" />

    <TextView
        android:id="@+id/editText22"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:ems="10"
        android:inputType="numberDecimal"
        android:text="R41.24" />
</LinearLayout>

2 个答案:

答案 0 :(得分:4)

听起来我想要一个自定义ListView:How to make custom ListView

这将允许您创建可滚动,可单击的内容表。通过自定义,您可以按照您想要的每一行格式化内容。

答案 1 :(得分:1)

您尝试实现的目标最好使用ListView:ListView Tutorial

您应该为此创建ListView,适配器和自定义视图。通过这样做,您将能够拥有OnListItemClickedListener,您不仅可以从中获取列表项的ID,还可以获取项目本身。