问题标签 [android-adapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
415 浏览

android - ListView 显示空白区域而不是本地图像

我正在尝试加载仅包含本地图像和文本的列表,一切正常,我的意思是我可以很好地看到文本,但在图像字段中我看不到图像。

本地图像路由是“/mnt/sdcard/Imagenes/pic1.jpg/”、“/mnt/sdcard/Imagenes/pic2.jpg/”等。

我一定在这里做错了什么,无法弄清楚是什么。任何帮助将不胜感激,谢谢...

这是我将适配器设置为列表的方法

和适配器

这是我设置数组的方式。

listafotos = new ArrayList();

非常感谢。

0 投票
6 回答
55492 浏览

android - 使用 AsyncTask 在 ListView 中加载图片

我有一个可以保存图像的 ListView。这取决于 SDCARD 中是否存在图像。

这是我的示例代码:

'sdcard/example/images' 目录包含图像:1.jpg、2.jpg、3.jpg、4.jpg、6.jpg、7.jpg 和 9.jpg。预期结果是: 例子

但是,如果我快速滚动列表,一些图像会插入错误的项目中。这是由于在 getView() 方法中使用了 convertView 而发生的。

如果我使用以下代码,则代码可以正常工作:

当列表快速滚动时,由于使用了 convertView,两个 asyncTask 可以引用同一个 View。当视图不再可见时如何取消 AsyncTask?(并且被 ListView 的另一项使用)

编辑

0 投票
2 回答
287 浏览

android - 如何使用 SimpleCursorAdapter 和 SQLiteDatabase 将 id 附加到 ListViewItem

我已经搜索了一段时间,但找不到任何可以帮助我解决问题的东西。

我在列表视图中有一个类别列表。我从 SQLiteDatabase 获取这些并使用 SimpleCursorAdapter 将它们放入列表中。这工作正常...

现在,如果我单击一个类别,我想启动一个新活动,显示具有该特定类别的所有项目。将参数传递给新活动不是问题 - 在这里找到了关于如何执行此操作的很好的教程:将数据或参数传递给另一个活动

我的问题是我无法从所选视图中获取 id...我想要来自所选类别的 id,以便我可以获取具有该 categoryId 的项目。这是我尝试从视图中获取 id 的地方 - 我使用了很多不同的方法(包括一些对列表视图、项目和位置的摆弄,......这是我最近的尝试)并且不知道是什么下次试试……

有没有人遇到过同样的问题,如果你有,你对我有什么建议吗?

问题是这样解决的:

0 投票
1 回答
1369 浏览

android - 具有多项选择和自定义视图的对话框

我现在正在为这个问题苦苦挣扎一天,我只是不知道如何解决它。

所以,我有一个 AlertDialog,我想在其中显示要选择的项目列表。这些项目必须有多个文本视图等,所以我不能依赖setMultiChoiceItems()使用默认格式的简单构建器。

我在这里使用我的自定义 ArrayAdapter,这样做:

我以为我可以使用 anOnClickListener作为第二个参数,setAdapter但是在选择一个选项后会关闭对话框。

为了解决这个问题,我setOnClickListener()在获取行布局时在我的 ContactsAdapter 中添加了一个,如下所示:

这可行,但是当我单击一行时,我会停止突出显示,这是我真的不想要的。

任何想法如何解决这个问题?我知道我可以使用 ListActivity 并且这很容易解决,但我真的想在对话框中执行此操作。谢谢!

0 投票
2 回答
860 浏览

android - 如何将 ListView 滚动到特定 id 并将该项目设置为已选中?

我有一个映射到 SQLCursorAdapter 的 ListView。默认情况下,我总是希望检查与特定 id 对应的视图,并滚动 ListView 以使该特定项目可见。我该如何做到这一点?

注意:项目的数量可以是几百个,我要检查的项目可以在列表中的任何位置。

0 投票
2 回答
1257 浏览

android - 从 ListAdapter 或 SimpleCursorAdapter 填充列表视图

我正在制作一个新的 Android 应用程序,它基本上反映了我们网站上可用的数据。GUI 将显示ListView每个项目中的图像和文本,或者RelativeLayout显示单个项目的详细信息。

为了提高这个应用程序的响应能力,如果数据足够新,我想从内部数据库读取数据,如果内部数据太旧,我想从服务器的 API(通过 http 的 JSON)读取数据(然后填充带有新数据的内部数据库)。

SimpleCursorAdapter从基本教程来看,从内部数据库读取时似乎应该使用数据库和(*)。但是当从网上阅读时,我想我会使用ArrayListand ArrayAdapter

是否有某种类型的适配器可以处理这两种情况?

(*) 我知道最新的事情是将 LoaderManager 与 CursorLoader 一起使用,但我正在尝试支持 Android 2.1。我想我可以将 SimpleCursorAdapter 放入 AsyncTask 并避免 ANR。

0 投票
1 回答
172 浏览

android - SectionedAdapter 传递多个字符串

在适配器中我有这样的东西

在标题变量中,我有一个字符串。此字符串沿适配器传递

如何传递多个字符串?例如,我有字符串 A 和字符串 B,如何将它们传递给适配器,以及如何在后面读取它们?我需要这样的东西

0 投票
1 回答
802 浏览

android - gridview 加载远程图像。更新视图?

我正在使用GridView具有图像作为子项。

这些getView函数从应用程序“Loading.gif”为所有子项加载默认图像。在另一个线程中,我将所有图像以某种位图类型加载到适配器中。

adapter.notifyDataSetChanged()在加载每个图像后调用是否足够明智?

还是有直接更新图像的替代方法?

0 投票
3 回答
13875 浏览

android - AutoCompleteTextView 检测用户是否选择了建议

如果用户从我的 autocompleteTextview 中按下了建议,我只希望用户无法单击按钮。

为了实现这一点,我在我的适配器中实现了一个 onKeyListener 并删除了如果您按下建议则由适配器设置的标签。然后我检查是否有标签。

但是 onKeyListener 似乎没有正确删除标签:

有没有其他方法可以解决这个问题?

0 投票
0 回答
165 浏览

java - 图库不显示更新的数据集

我有一个在一组图像中搜索的活动。图像显示在画廊中。有一个 EditText,用户可以在其中输入搜索词。当用户在 EditText 中输入文本时,画廊会根据输入的文本进行过滤。

我做了一个SearchResultAdapter extends BaseAdapter implements Filterable基本上可以正常工作的。如果用户输入文本,适配器中的数据将被过滤。我记录了结果:到目前为止它有效。然后我调用 notifyAdapterSetChanged 以便图库显示更新的数据集。notifyAdapterSetChanged 实际被调用,并且请求被画廊接收,因为它调用我的适配器 getCount() (我记录了所有调用)。

将选择设置为 0 由于 IndexOutOfBoundsException 导致应用程序崩溃,正如我在画廊没有项目时所期望的那样。画廊仍然显示之前在其中的所有图像。

问题是:当数据集为空(即用户输入的搜索词不适合任何图像)时,图库不会显示更新。图库接收 notifyAdapterSetChanged,查询适配器的项目计数(为 0)并更新滚动限制。它不会更新图库中显示的图像。我不能再滚动图像了,因为基本上没有图像可以显示,但图像并没有从图库中删除。在用户看来,就好像画廊冻结了一样。

当无效的搜索词被删除(即数据集不为空)时,图库会显示正确的图像。同样在某些情况下,画廊会显示空列表,例如当应用程序最小化然后重新打开时。我无法重现画廊清空自身的条件(除了最小化/重新打开应用程序):

我尝试过使画廊无效和 requestLayout(),但它没有帮助。有谁知道如何让画廊更新显示的图像列表?

这里是当用户输入与图像不匹配的文本时的日志消息:

请注意,适配器实际上是如何由库在数据集大小上调用的

活动中的初始化代码:

和 SearchResultAdapter(无关紧要的行被省略):

编辑:将画廊的可见性设置为不可见,然后再次可见解决了这个问题。

有更好的解决方案吗?这对我来说似乎相当骇人听闻。