问题标签 [android-listfragment]

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 投票
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 投票
1 回答
1667 浏览

android - Google 的 Fragments 示例:更改方向时维护列表中的选定项目

我一直在使用 ContentProviders、加载器、游标和片段处理一些示例。我一直在使用 Google 的Fragments示例。请记住,这是 v4 支持库。

他们的示例在切换方向时保留所选项目,并且显示的片段用于保留的所选项目。

在他们的代码中,是什么赋予了他们这种能力?我一直试图弄清楚这一点,但找不到它。

我写的内容仍然会在列表中突出显示该项目,但显示的片段不是所选项目的详细信息……它只是第一项的详细信息。

谢谢


解决方案:我忘记在方法中设置mCurCheckPosition= ......哈哈。indexshowDetails

0 投票
3 回答
2237 浏览

android - 无法更改 ListFragment 项目的文本颜色

我有一个从光标填充的 ListFragment。我将列表背景设置为白色,出于某种原因,文本也设置为白色。我尝试更改布局 xml 中的 textColor 属性,但似乎没有任何效果。有人能指出我错过了什么吗?谢谢。

从 ListFragment:

列表项布局:

0 投票
1 回答
14968 浏览

android - 创建自定义简单光标适配器

我想创建一个非常简单的光标自定义光标适配器,以方便在单击时更改行项的颜色。使用以下代码

我从这个线程得到了代码https://stackoverflow.com/a/7649880/498449

我会使用一个简单的光标适配器并将代码放在 onClick 中,但是因为 ListFragment 中的默认列表重用了视图,所以当您滚动多个视图时显示为突出显示。谈到 IRC,有人建议我创建一个自定义光标适配器。但是,我似乎无法找到如何做到这一点的最佳实践,以及上面的代码片段适合的位置。非常感谢您的帮助。

我已经用我在网上找到的一些代码更新了光标适配器。但是,我有两个问题。1. 我正在使用游标加载器,所以我没有“游标”对象传递给构造函数。2. 我收到来自 Eclipse 的警告,构造函数已被弃用。

0 投票
1 回答
921 浏览

android - ListView 过滤后每个项目显示两次

我有一个列表,每一行由一个主要项目和一个子项目组成。当用户输入搜索编辑文本时,我正在使用过滤器刷新列表。在键入列表中的项目时,确实会根据键入的字母显示,但是每个项目显示两次。下面是我的代码:

谁能帮我找出问题所在?

0 投票
1 回答
4130 浏览

android - 如何使 ListFragment 仅占据屏幕的上半部分

我正在尝试制作一个文件管理器应用程序,其中我在屏幕上半部分的 ListFragment 中列出某个目录的内容(不用说这个列表可以滚动),并且当用户点击某个文件/文件夹时,与其关联的元数据应该在位于片段正下方的 FrameLayout 中可见,以及文件类型的缩略图。这是我的布局:

我首先使用了没有 ScrollView 标记的“layout_weight”属性,但是片段不尊重这些权重属性,并且列表很好地延伸到屏幕底部。

当我将片段包含在 ScrollView 标记中时(我知道..不是一个好主意!),我一次只能看到一个列表条目。

无论如何,我可以让 ListFragment 占据屏幕的前 40% 并在必要时在 40% 的屏幕空间中显示可滚动列表?

0 投票
1 回答
1135 浏览

android - Android ListView / ListFragment 强制单行一行(Java代码)

我似乎无法找到解决这个所谓的简单问题/错误的方法,所以这里是:

一个 ListFragment 类型(android.R.layout.simple_list_item_checked),当点击它时,将加载其他片段并做其他工作。

问题是 ListFragment 中不在视图中的字符串在滚动回视图时会无缘无故地“包装”到下一行。用下面的照片更好地说明:


照片 1:正常情况

1-正常


照片 2:列表向下滚动 - 一切正常(兰博基尼不在视野范围内) 2-正常端


图 3:但是当我选择 Porsche 并向下滚动时,“Mustang”文本已损坏

4-错误1


照片 4 : 随机点击后向上滚动的“兰博基尼”也是如此

5-错误2


我用来创建列表视图的代码非常简单:

CarModels.class 中的字符串

我尝试在 onListItemClick() 末尾调用 notifyDataSetChanged() 希望它会刷新列表,但问题仍然存在。有什么可能的解决方案吗?谢谢!

PS:我在 Galaxy Tab 10.1、带有 support-library-v4 的 Honeycomb 3.1 上运行它。这可能是这个版本的错误吗?

0 投票
2 回答
4932 浏览

android - 更新 ListFragment

我创建了一个扩展ListFragment. 我在布局中也有一个按钮,当我单击该按钮时,我正在删除 listvew 的数据,并触发notifyDataSetChanged适配器,但 ListViewFragment 没有得到updated

那么如何更新 ListFragment 呢?我正在使用 Android 兼容性支持包

onActivityCreated 中的代码

0 投票
2 回答
2063 浏览

android - Activity 完成时更新 ListFragment

我创建了一个列表片段和一个如下所示的按钮(左图)

每当我单击 ADD 按钮时,都会打开一个新的 Activity 并在该用户内部写一些东西并单击 DONE ,该 activty 完成并返回到 ListFragment ,但是在单击 DONE 后,我将如何使用新值更新 ListFragment 。我的意思是我在哪里可以写 notifyDataSetChanged。

在此处输入图像描述

注意:当我点击 DONE 时,数据将存储在数据库中,当 ListFragment 加载时,它将获取其中的数据

我正在使用 android 支持兼容性库

0 投票
2 回答
923 浏览

android - 零星的 NullPointerException 尽管 Object 不为空

我在这行代码中得到一个零星的(约 30 次中的 1 次)NullPointerException。而且我不知道它来自哪里以及如何防止它。

mDb 是一个 SQliteDatabase 对象,Close 函数被实现到一个 Helper 类中。

我在做什么:我想用 AsyncTask 在 SQliteDatabase 中处理一个复杂的查询。这是 AsyncTask 的代码:

我在这里创建了这个 AsyncTask(来自 ListFragment):

03-26 00:44:20.489: E/SqliteDatabaseCpp(6442): sqlite3_close(0x3b2278) 失败: 27 03-26 00:44:20.520: W/dalvikvm(6442): threadid=12: 线程以未捕获的异常退出(组= 0x40a691f8) 03-26 00:44:20.520: E/AndroidRuntime(6442): 致命异常: AsyncTask #2
03-26 00:44:20.520: E/AndroidRuntime(6442): java.lang.RuntimeException: 发生错误在执行 doInBackground() 03-26 00:44:20.520: E/AndroidRuntime(6442): at android.os.AsyncTask$3.done(AsyncTask.java:278)
03-26 00:44:20.520: E/AndroidRuntime( 6442): 在 java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 03-26 00:44:20.520: E/AndroidRuntime(6442): 在 java.util.concurrent.FutureTask.setException(FutureTask .java:124)
03-26 00:44:20.520: E/AndroidRuntime(6442): 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
03-26 00:44:20.520: E/AndroidRuntime(6442) : 在 java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-26 00:44:20.520: E/AndroidRuntime(6442): 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java: 208)
03-26 00:44:20.520: E/AndroidRuntime(6442): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 03-26 00:44:20.520: E/AndroidRuntime(6442) : 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 03-26 00:44:20.520: E/AndroidRuntime(6442): 在 java.lang.Thread.run(Thread.java:856 ) 03-26 00:44:20.520: E/AndroidRuntime(6442): 引起: java.lang.NullPointerException
03-26 00:44:20.520: E/AndroidRuntime(6442): 在 android.database.sqlite.SQLiteDatabase.closeDatabase(SQLiteDatabase.java:1156) 03-26 00:44:20.520: E/AndroidRuntime(6442): 在android.database.sqlite.SQLiteDatabase.close(SQLiteDatabase.java:1105) 03-26 00:44:20.520: E/AndroidRuntime(6442): 在 de.kialelem.trainer.DbHelper.close(DbHelper.java:676) 03 -26 00:44:20.520: E/AndroidRuntime(6442): 在 de.kialelem.trainer.ViewContentDatabaseListFragment$processCursorTask.doInBackground(ViewContentDatabaseListFragment.java:48) 03-26 00:44:20.520: E/AndroidRuntime(6442):在 de.kialelem.trainer.ViewContentDatabaseListFragment$processCursorTask.doInBackground(ViewContentDatabaseListFragment.java:1) 03-26 00:44:20.520: E/AndroidRuntime(6442): 在 android.os.AsyncTask$2.call(AsyncTask.java:264 ) 03-26 00:44:20。520: E/AndroidRuntime(6442): 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-26 00:44:20.520: E/AndroidRuntime(6442): ... 还有 5 个