我有listview集合,在Android中显示ID和名称。我是来自this资源站点的示例。
但实际上这个例子只显示名称。我希望类似于ASP.NET中包含属性文本和值的checkboxlist。所以文本显示名称和值存储ID。当用户选择一个项目时,我可以通过viewtext检索id。
我的问题是如何在同一个viewtext项目中设置id和name?我希望可以将id传递给另一个布局。
我知道可以使用多视图文本然后使用map设置viewtext的不可见。这怎么可能是废物记忆。
答案 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