问题标签 [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 回答
634 浏览

android - 为什么 GridView 需要 BaseAdapter?

为什么我们需要BaseAdapterin GridView?为什么选择基础适配器本身?我们可以使用其他适配器类型吗?

0 投票
1 回答
743 浏览

android - Android重新创建ListView

如何重新创建 listView?我有包含少量 TextView 的项目的 listView,我想要重新加载 ListView 并从每一行隐藏这些 TextView 的一部分。我尝试使用 notifyDataSetChanged() 设置新适配器,清除适配器(它使 listView 为空),使 listView 无效。没有什么强制 ListView 重新创建项目。

0 投票
1 回答
61839 浏览

android - Android中的蓝牙设备发现——startDiscovery()

目标:构建一个 Android 应用程序,发现范围内的 BT 设备的名称和地址,并将其值提交给 Web 服务。BT 设备之前没有绑定到主机设备,我只想在走动时轮询所有内容。

我做了什么:

  1. 仔细阅读文档。
  2. 实现了主机设备的 BT 适配器的本地实例。
  3. 如果未启用,则实施通知以启用 BT。
  4. 注册广播接收器和意图来解析startDiscovery()ACTION_FOUNDs的到来。
  5. 在清单中注册了BLUETOOTHBLUETOOTH_ADMIN权限。

直到startDiscovery().


挫折:

  • startDiscovery() - 我怀疑我在错误的上下文中传递了这个。此方法需要放置在什么上下文中才能正常运行?

如果您能够使这种方法发挥作用,我将非常感谢您的智慧。

更新- 这是导致我悲伤的代码的精简版;这种简化概括了我的错误。这段代码运行,它没有抛出cat.log错误或其他错误,它根本没有给出任何输出。

}

0 投票
3 回答
5260 浏览

android - 如何将项目从数据库添加到列表视图?

我通常使用此代码将项目从数据库添加到列表视图:

但是,在我的项目中,我将图像添加到列表视图,如下所示:

这会导致 arrayadapter 出现问题,我无法像往常一样捕获 listview:

请有任何建议

新代码:

删除数组适配器代码:

0 投票
3 回答
464 浏览

android - 使用自定义适配器搜索列表视图

我的应用程序有一个带有自定义适配器的双行ListView。我想用 EditText 的输入过滤列表视图的内容。这怎么可能?

0 投票
1 回答
183 浏览

android - bean对象的适配器是什么?

我正在将一个 bean 对象从第一个视图发送到第二个视图。其他时候,当我有一个要显示数据的数组时,我会使用 ArrayAdapter,但这次我只有一个要显示的 bean 对象。我必须使用什么类型的适配器?

0 投票
3 回答
2780 浏览

android - 尽管有时在恢复应用程序时将项目添加到适配器,但 ListView 为空

我在市场上有一个应用程序有一个我似乎无法解决的错误。今天我把它追踪到了下面的方法。

此方法传递一个从 Internet 下拉的交易对象的数组列表。当应用程序第一次打开时,从互联网上提取数据并调用上述方法,该方法会创建一个为 ListFragment 设置的新适配器。当用户请求更多交易时,也会调用此方法。

我遇到的问题是列表有时认为它是空的,尽管适配器包含交易。当用户在设备内存不足时恢复应用程序时,这似乎会发生(我认为应用程序的一部分已从 ram 中删除)。调用此方法并且 dealListAdapter 为空,因此创建了一个新方法并添加了交易。尽管发生这种情况,列表仍然是空的,用户必须强制关闭应用程序才能让它再次工作。

下面的行显示了当方法被调用时它进入 if 并且 21 个交易被添加到适配器。不幸的是,该列表对用户来说是空的。

0 投票
2 回答
36751 浏览

android - 图像 GridView 内部片段

在iOS上开发之后,我才开始在android平台上开发。我环顾四周,似乎无法弄清楚。我试图在选择操作栏中的选项卡后出现网格视图。控制标签栏的主要活动将片段带入视图。我认为问题可能与传递上下文有关,但我不确定。

这是我的MainActivity.java。这是片段被初始化并附加到活动的地方。它可以在没有片段中的代码的情况下工作。

这是我的 PhotosFragment.java 这是我希望填充和显示网格视图的地方。

这是我的PhotoImageAdapter.java类。我认为这是将图像添加到适配器的位置。

这是我的photos_layout,其中包含ID 为photogridview 的gridview。 照片_布局.xml

编辑

这是崩溃时的日志报告

当您单击选项卡并初始化片段时,应用程序崩溃。我正在关注的教程是android 开发者网站上的教程。

任何帮助或解释都会很棒。就像我说的那样,我是新手,所以如果有一些指示可以帮助我理解发生了什么,那就太好了。

迪斯科

0 投票
1 回答
1920 浏览

android - 在 FragmentPageAdapter 中间插入页面

我正在使用 ViewPageIndicator 中的ViewPager,我需要能够在其他片段中间动态插入一个片段。

我尝试使用FragmentPagerAdapterFragmentStatePagerAdapter(均来自 v4 支持代码)管理模型,第一个似乎不以任何方式管理在中间插入页面。第二个方法只有在我简单地实现getItemPosition总是返回 POSITION_NONE 时才有效,但这会导致我每次滑动时都完全重新创建页面。

我用 FragmentStatePagerAdapter (FSP) 观察到的问题是:

  • 我从两页开始 [A][B]
  • 然后我在中间 [A][C][B] 中插入 [C]。插入后我调用notifyDataSetchange()
  • 然后 FSP 为 [A] 调用 getItemPosition 并得到 0
  • 然后 FSP 为 [B] 调用 getTItemPosition 并得到 2。它说......哦,我必须销毁 [B] 并制作 mFragments.set(2, null) 然后因为它在 mFragments 数组中只有两个元素,所以它抛出IndexOutOfBoundsException

在代码中看了一点之后,似乎提供的 fragmentStatePagerAdapter 不支持在中间插入。这是正确的还是我错过了什么?

更新: 适配器中的插入是以逻辑方式进行的,当某个代码为真时,页面会增加一。片段创建是使用 getItem() 中的构造函数以这种方式完成的:

解决方案:

正如在接受的答案中所说,关键是实施getItemId()

确保至少使用R9(2012 年 6 月)版本的 android-support library。因为里面加了这个方法。在此版本之前,该方法不存在,并且适配器无法正确管理插入。还要确保使用FragmentPageAdapter,因为 FragmentStatePagerAdapter 仍然不起作用,因为它不使用 id。

0 投票
1 回答
536 浏览

android - 带有适配器的 Android GridView

我试图避免有 5 个带有单独适配器的列表视图,所以我的想法是让 GridView 有 5 列,代表周计划,并将我的 CursorAdapter 附加到它。db 中的每一行都有代表星期几的 dayId。

我担心的是在适配器中填充 GridView。

是否有机会根据游标行中提供的 dayId 将元素设置为特定列,或者我应该在转到适配器之前为对游标行进行排序制定完整的逻辑?