我有在Android中显示id和名称的listview集合。我以this资源站点为例。
但实际上该示例仅显示名称。我希望类似于包含属性文本和值的ASP.NET中的checkboxlist。所以显示文本的名称和值存储id。当用户选择一项时,我可以通过视图文本检索id。
我的问题是如何在同一视图文本项中设置id和name?我希望可以将id传递给另一个布局。
我知道可以使用多视图文本,然后使用地图设置不可见的视图文本。这怎么可能是浪费内存。
发布于 2010-12-13 17:59:45
我建议使用自定义的listview。你可以在谷歌上搜索“自定义列表视图”,你会找到一堆关于它的教程。简单地说,它是一个列表视图,它有一个可以在xml文件中指定的自定义行。
here是一个非常有用的入门教程。
这是我编写的代码,也许它会对你有所帮助。请注意,这有点不同,因为我定义的不是listactivity,而是listview小部件。但是对于自定义的行项,这并不重要。
这将创建一个listview并为该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并覆盖默认方法。
希望这是可以理解的,以掌握主题;)
发布于 2010-12-15 01:38:26
视图有一个关联的标记对象映射,其中可能包含您的id http://developer.android.com/reference/android/view/View.html#getTag%28int%29。
https://stackoverflow.com/questions/4427509
复制相似问题