我想在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>
答案 0 :(得分:4)
听起来我想要一个自定义ListView:How to make custom ListView
这将允许您创建可滚动,可单击的内容表。通过自定义,您可以按照您想要的每一行格式化内容。
答案 1 :(得分:1)
您尝试实现的目标最好使用ListView:ListView Tutorial
您应该为此创建ListView,适配器和自定义视图。通过这样做,您将能够拥有OnListItemClickedListener,您不仅可以从中获取列表项的ID,还可以获取项目本身。