问题标签 [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.
android - ListView 显示空白区域而不是本地图像
我正在尝试加载仅包含本地图像和文本的列表,一切正常,我的意思是我可以很好地看到文本,但在图像字段中我看不到图像。
本地图像路由是“/mnt/sdcard/Imagenes/pic1.jpg/”、“/mnt/sdcard/Imagenes/pic2.jpg/”等。
我一定在这里做错了什么,无法弄清楚是什么。任何帮助将不胜感激,谢谢...
这是我将适配器设置为列表的方法
和适配器
这是我设置数组的方式。
listafotos = new ArrayList();
非常感谢。
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 的另一项使用)
编辑
android - 如何使用 SimpleCursorAdapter 和 SQLiteDatabase 将 id 附加到 ListViewItem
我已经搜索了一段时间,但找不到任何可以帮助我解决问题的东西。
我在列表视图中有一个类别列表。我从 SQLiteDatabase 获取这些并使用 SimpleCursorAdapter 将它们放入列表中。这工作正常...
现在,如果我单击一个类别,我想启动一个新活动,显示具有该特定类别的所有项目。将参数传递给新活动不是问题 - 在这里找到了关于如何执行此操作的很好的教程:将数据或参数传递给另一个活动
我的问题是我无法从所选视图中获取 id...我想要来自所选类别的 id,以便我可以获取具有该 categoryId 的项目。这是我尝试从视图中获取 id 的地方 - 我使用了很多不同的方法(包括一些对列表视图、项目和位置的摆弄,......这是我最近的尝试)并且不知道是什么下次试试……
有没有人遇到过同样的问题,如果你有,你对我有什么建议吗?
问题是这样解决的:
android - 具有多项选择和自定义视图的对话框
我现在正在为这个问题苦苦挣扎一天,我只是不知道如何解决它。
所以,我有一个 AlertDialog,我想在其中显示要选择的项目列表。这些项目必须有多个文本视图等,所以我不能依赖setMultiChoiceItems()
使用默认格式的简单构建器。
我在这里使用我的自定义 ArrayAdapter,这样做:
我以为我可以使用 anOnClickListener
作为第二个参数,setAdapter
但是在选择一个选项后会关闭对话框。
为了解决这个问题,我setOnClickListener()
在获取行布局时在我的 ContactsAdapter 中添加了一个,如下所示:
这可行,但是当我单击一行时,我会停止突出显示,这是我真的不想要的。
任何想法如何解决这个问题?我知道我可以使用 ListActivity 并且这很容易解决,但我真的想在对话框中执行此操作。谢谢!
android - 如何将 ListView 滚动到特定 id 并将该项目设置为已选中?
我有一个映射到 SQLCursorAdapter 的 ListView。默认情况下,我总是希望检查与特定 id 对应的视图,并滚动 ListView 以使该特定项目可见。我该如何做到这一点?
注意:项目的数量可以是几百个,我要检查的项目可以在列表中的任何位置。
android - 从 ListAdapter 或 SimpleCursorAdapter 填充列表视图
我正在制作一个新的 Android 应用程序,它基本上反映了我们网站上可用的数据。GUI 将显示ListView
每个项目中的图像和文本,或者RelativeLayout
显示单个项目的详细信息。
为了提高这个应用程序的响应能力,如果数据足够新,我想从内部数据库读取数据,如果内部数据太旧,我想从服务器的 API(通过 http 的 JSON)读取数据(然后填充带有新数据的内部数据库)。
SimpleCursorAdapter
从基本教程来看,从内部数据库读取时似乎应该使用数据库和(*)。但是当从网上阅读时,我想我会使用ArrayList
and ArrayAdapter
。
是否有某种类型的适配器可以处理这两种情况?
(*) 我知道最新的事情是将 LoaderManager 与 CursorLoader 一起使用,但我正在尝试支持 Android 2.1。我想我可以将 SimpleCursorAdapter 放入 AsyncTask 并避免 ANR。
android - SectionedAdapter 传递多个字符串
在适配器中我有这样的东西
在标题变量中,我有一个字符串。此字符串沿适配器传递
如何传递多个字符串?例如,我有字符串 A 和字符串 B,如何将它们传递给适配器,以及如何在后面读取它们?我需要这样的东西
android - gridview 加载远程图像。更新视图?
我正在使用GridView
具有图像作为子项。
这些getView
函数从应用程序“Loading.gif”为所有子项加载默认图像。在另一个线程中,我将所有图像以某种位图类型加载到适配器中。
adapter.notifyDataSetChanged()
在加载每个图像后调用是否足够明智?
还是有直接更新图像的替代方法?
android - AutoCompleteTextView 检测用户是否选择了建议
如果用户从我的 autocompleteTextview 中按下了建议,我只希望用户无法单击按钮。
为了实现这一点,我在我的适配器中实现了一个 onKeyListener 并删除了如果您按下建议则由适配器设置的标签。然后我检查是否有标签。
但是 onKeyListener 似乎没有正确删除标签:
有没有其他方法可以解决这个问题?
java - 图库不显示更新的数据集
我有一个在一组图像中搜索的活动。图像显示在画廊中。有一个 EditText,用户可以在其中输入搜索词。当用户在 EditText 中输入文本时,画廊会根据输入的文本进行过滤。
我做了一个SearchResultAdapter extends BaseAdapter implements Filterable
基本上可以正常工作的。如果用户输入文本,适配器中的数据将被过滤。我记录了结果:到目前为止它有效。然后我调用 notifyAdapterSetChanged 以便图库显示更新的数据集。notifyAdapterSetChanged 实际被调用,并且请求被画廊接收,因为它调用我的适配器 getCount() (我记录了所有调用)。
将选择设置为 0 由于 IndexOutOfBoundsException 导致应用程序崩溃,正如我在画廊没有项目时所期望的那样。画廊仍然显示之前在其中的所有图像。
问题是:当数据集为空(即用户输入的搜索词不适合任何图像)时,图库不会显示更新。图库接收 notifyAdapterSetChanged,查询适配器的项目计数(为 0)并更新滚动限制。它不会更新图库中显示的图像。我不能再滚动图像了,因为基本上没有图像可以显示,但图像并没有从图库中删除。在用户看来,就好像画廊冻结了一样。
当无效的搜索词被删除(即数据集不为空)时,图库会显示正确的图像。同样在某些情况下,画廊会显示空列表,例如当应用程序最小化然后重新打开时。我无法重现画廊清空自身的条件(除了最小化/重新打开应用程序):
我尝试过使画廊无效和 requestLayout(),但它没有帮助。有谁知道如何让画廊更新显示的图像列表?
这里是当用户输入与图像不匹配的文本时的日志消息:
请注意,适配器实际上是如何由库在数据集大小上调用的
活动中的初始化代码:
和 SearchResultAdapter(无关紧要的行被省略):
编辑:将画廊的可见性设置为不可见,然后再次可见解决了这个问题。
有更好的解决方案吗?这对我来说似乎相当骇人听闻。