问题标签 [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 投票
4 回答
13081 浏览

android - Android 更复杂的 ListView 教程

我刚刚开始为 Android 编写代码,但我很难理解列表视图。

例如,我需要了解如何在单击第一个列表视图中的项目时显示另一个列表视图。还有如何在单击列表视图中的项目时显示文本视图。

如果有人知道任何好的教程或示例,请告诉我。

非常感谢

0 投票
1 回答
23398 浏览

android - Android ListView 适配器 notifyDataSetInvalidated() 与 notifyDataSetChanged()

有什么区别?android 文档没有关于 notifyDataSetInvalidated() 的描述。我在想也许您调用该函数来通知所有注册的侦听器,但使用 notifyDataSetChanged() 不通知他们?

0 投票
2 回答
423 浏览

android - 安卓中的 TabView

我有三个选项卡,每个选项卡的内容都是一个视图(在本例中为 Gridview)。我创建了一个图像适配器类来填充网格。我调用图像适配器使用

但是每个视图必须以不同的方式填充。我怎么知道哪个视图称为图像适配器类?是否有一种方法可以将参数与调用一起传递,或者可以以不同的方式完成吗?

0 投票
1 回答
4593 浏览

android - 通过 notifydataSetChanged 更新 ListView,必须使用 runOnUiThread?

所以我有这个ListView,它使用我自己的自定义arrayadapter。它工作得很好,从数据库等中获取数据,但是在设置之后没有更新它。我有这个活动可以为结果做一些事情,当它回来时,我称之为:

问题是它notifyDataSetChanged()实际上并没有做任何事情。我做了进一步调查,我猜它必须在 UI 线程上调用?但我在 FragmentActivity 中,我不知道该怎么做?我可能必须创建一个可运行的线程并从那里调用它?没有对线程做太多,所以不确定,任何人都有关于如何做到这一点的好(简洁和完整)的例子?或者这甚至是我的问题?

(注意:我切换到 ORM Lite,在此之前我在这个特定的位置有一个SimpleCursorAdapter我可以在我的光标上调用 a 之后更新.requery,然后notifyDataSetChanged()

编辑:

好的,经过一些评论后,我调查了 AsyncTask 路线......:

在我的onActivityCreated

在我的onActivityResult(...)

仍然没有更新列表...

所以我证明我不知道我在做什么:)

0 投票
2 回答
2465 浏览

java - 数组适配器 NotifyDataSetChanged() NullPointerException Android

我正在将地图添加到列表中,然后刷新数组适配器。这之前工作得很好,但是现在我使用了来自两种不同方法的 addItem() 方法,它会抛出一个 NullPointer。我希望我的代码能澄清我所说的:

需要明确的是,createNewEditedEntry() 和 onActivityResult() 永远不会同时调用,也不会发生冲突。它们是两个完全不同的事件。它只使用 OnActivityResult,但现在当我使用 CreateNewEditedEntry() 时,它已停止工作。我还检查并确保我从意图中获取的所有字符串都不为空。

0 投票
1 回答
238 浏览

android - 在Android中将列表项与公共列数据分开?

我是 Android 的初学者,但据我所知,如果我想将我的数据库绑定到具有自定义行的列表视图,我需要覆盖 CursorAdapter。但是,由于我希望在我的列表视图上实现一个功能,我无法开始处理它:我不仅要显示根据日期的升序排列的列表视图,我还希望有两个单独的部分在我的列表视图中,它们都根据日期排序但使用相同的光标(如果可能的话)。

我的架构的简化版本可能如下所示:_ID、NAME、DATE、TRUTH_VALUE

我的默认视图是按日期对结果游标的行进行排序,但我也想“过滤”或从游标中创建根据“TRUTH_VALUE”分隔的部分,这意味着我的列表中的第 1 部分可以包含项目在“TRUTH_VALUE”中具有任意值 0,根据日期排序,并且第 2 节包含其 TRUTH_VALUE 列是任意 1 的项目,这些项目也根据日期排序。

我似乎找不到任何可以接受两个游标(然后将其制成单个过滤的 ListView)的适配器或其他任何类型的适配器,我也不考虑在我的自定义适配器的构造函数中放置一些额外的参数(例如,在实例化我的适配器,我在参数中包含一个值,帮助适配器确定它是否可以修改它绑定游标数据的方式,我认为这是不可能的,或者只是很困难;更不用说导致性能问题)。

提前致谢!

0 投票
2 回答
3940 浏览

android - 如何在 Fragment 中设置适配器

我有一个FragmentwhoonCreateView()回调返回一个 custom View。View 包含一个我想在其上设置适配器的 GridView。在我切换到使用 Fragments 之前,我会简单地找到GridViewby Id,然后设置adapter. 由于我目前不明白的原因,GridView当我尝试在我的FragmentsActivity.

所以,我想自己设置适配器fragment。我假设我需要在 中执行此操作onActivityCreated,但我不知道如何设置onCreateView 返回adapterGridView视图中包含的 。换句话说,我如何抓住返回的那个 ViewonCreateView来设置Adapter它?

编辑 - 我刚刚意识到,我可能只是找到并设置在GridView那里,不是吗?onActivityCreatedadapter

0 投票
2 回答
1652 浏览

android - 使 ListView 行为类似于垂直画廊

我有以下代码使 ListView 看起来像一个垂直画廊

但是我还需要模拟一些行为:

  • 集中视图:当新视图出现时,我需要将其集中在我的显示器上。
  • 触发onItemSelected事件:我需要这些,因为我将事件调度到当前视图,并且ListView仅当 currentView 在 touchEvent 上返回 false 时才滚动,我不需要确切的 ItemSelected 事件,这可能是类似的。
  • 另一个问题是,如果用户向上滑动,我应该只翻译一个视图(根据手势的速度而不是几个)。

任何让我这样做的组件也将是一个有用的答案。

编辑:实际上,我用这个解决方案解决了这个问题Using Animation to swipe views但我会保持这个问题的开放。

0 投票
10 回答
73176 浏览

android - 作为 ViewPager 的一部分更新 ListFragment 中的数据

我在 Android 中使用 v4 兼容性 ViewPager。我的 FragmentActivity 有一堆数据,这些数据将以不同的方式显示在我的 ViewPager 的不同页面上。到目前为止,我只有 3 个相同 ListFragment 的实例,但将来我将拥有 3 个不同 ListFragment 的实例。ViewPager 在垂直电话屏幕上,列表不是并排的。

现在 ListFragment 上的一个按钮启动了一个单独的整页活动(通过 FragmentActivity),该活动返回,FragmentActivity 修改数据、保存数据,然后尝试更新其 ViewPager 中的所有视图。就在这里,我被卡住了。

现在如您所见,我的第一次尝试是在整个 FragmentPagerAdapter 上通知DataSetChanged,这表明有时会更新数据,但其他我得到一个 IllegalStateException:onSaveInstanceState 后无法执行此操作。

我的第二次尝试涉及尝试在我的 ListFragment 中调用更新函数,但 getItem 中的 getId 返回 0。根据我尝试过的文档

使用 findFragmentById() 或 findFragmentByTag() 从 FragmentManager 获取对 Fragment 的引用

但我不知道我的片段的标签或 ID!我在 ListFragment 布局中有一个用于 ViewPager 的 android:id="@+id/viewpager" 和一个用于我的 ListView 的 android:id="@android:id/list",但我认为这些没有用。

那么,我怎么能:a)一次安全地更新整个 ViewPager(理想情况下将用户返回到他之前所在的页面) - 用户可以看到视图更改。或者最好是,b) 在每个受影响的 ListFragment 中调用一个函数来手动更新 ListView。

任何帮助将不胜感激!

0 投票
2 回答
12742 浏览

android - Listview 没有被填充,getView() 没有被调用

我在让我的列表视图显示在我正在编写的一个简单应用程序中时遇到了一些问题。由于某种原因getView(),我的适配器类的方法没有被调用。但是,当getCount()在我的适配器类中调用 when 时,它没有返回 0,而是实际上返回了正确的值。我真的很困惑为什么这不起作用。

这是我的活动:

这是活动使用的布局:

最后这是我的适配器类: