在Android中的listitem视图中设置,获取文本和值

时间:2010-12-13 09:43:25

标签: android listview textview

我有listview集合,在Android中显示ID和名称。我是来自this资源站点的示例。

但实际上这个例子只显示名称。我希望类似于ASP.NET中包含属性文本和值的checkboxlist。所以文本显示名称和值存储ID。当用户选择一个项目时,我可以通过viewtext检索id。

我的问题是如何在同一个viewtext项目中设置id和name?我希望可以将id传递给另一个布局。

我知道可以使用多视图文本然后使用map设置viewtext的不可见。这怎么可能是废物记忆。

2 个答案:

答案 0 :(得分:1)

我建议使用自定义列表视图。你可以谷歌搜索“自定义列表视图”,并会找到一堆教程。简单地说,它是一个listview,它有一个可以在xml文件中指定的自定义行。

here是一个非常有用的教程。

这是我编码的,也许它会帮助你。请注意,这有点不同,因为我没有定义listactivity而是listview小部件。但是关于自定义行项,这没关系。

这将创建一个列表视图并为该列表视图指定一个适配器。

    CustomListView listview = (CustomListView) findViewById(R.id.list);
    ArrayAdapter<String> arrayadapter = new ArrayAdapter<String(getApplicationContext(), R.layout.rowoflistview, R.id.label);
    listview.setAdapter(arrayadapter);

我的rowoflistview.xml如下所示。它为列表的每一行添加图像和文本。您当然可以将其更改为(大多数)您想要的任何内容。

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/rowselector"
>

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/musicicon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:src="@drawable/musicicon"
    android:paddingLeft="3px"
/>


<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="26px"
    android:layout_marginLeft="3px"
    android:singleLine="true"
    android:ellipsize="end"
    android:focusable="false"
/>


</LinearLayout>

因为我希望将listview作为我主要活动中的小部件而不是全屏活动,所以当涉及到事件监听和点击收听时,我不得不做除了你之外的其他操作。如果您希望它更容易一些,请确保在自定义listview-activity中扩展listactivity并覆盖默认方法。

希望抓住这个话题是可以理解的;)

答案 1 :(得分:1)

视图有一个关联的标记对象图,其中可能包含您的标识http://developer.android.com/reference/android/view/View.html#getTag%28int%29