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

android - 异步填充 ArrayList 以显示在列表视图中

当用户单击一个按钮时,会显示一个新的 ListFragment。该片段将包含专辑列表及其关联的艺术家姓名。

我创建了自己的类AlbumItem (String name, String artist)name其中包含专辑的标题和artist相应的艺术家姓名:

然后我编写了我的自定义适配器,它将专辑名称和艺术家名称与我的 ListView 行中的正确 TextView 相关联。

那么我可以声明一个 AlbumItem 的 ArrayList 并像这样填充它:

现在我有几个问题:

1)我走的路合适吗?我一直在学习填充这样的列表视图,并且我很喜欢使用这种技术(自定义项目类 + ArrayList + CustomAdapter),但我正在做一个音乐播放器,我想查询专辑列表并更新异步列表视图,以便 UI 不会被阻塞。我不知道是否可以按照我的方式将数据加载到 ArrayList 中。

2) 如何异步填充这个 ArrayList ?使用 LoaderManager/CursorLoader 或 Asyntask 或其他什么?(我的目标是 Android 4.0)

谢谢你的建议。

0 投票
1 回答
4837 浏览

android - 使用 LoaderManager 和 CursorLoader 在列表视图中显示专辑和艺术家

我有一个ListFragment谁的列表应该显示设备的专辑和使用的相关艺术家MediaStore。因此,每行有两个TextViews. 我正在使用LoaderManagerCursorLoader使用自定义 CursorAdapter 来填充列表,以便将TextViews行的绑定到数据。

列表片段代码:

AlbumsAdapter(自定义 CursorAdapter)代码:

目前,当我显示这个 ListFragment 时,我有一个 java.lang.NullPointerException,这里是 logCat:

您能否帮我更正我的代码,以便将专辑和相关艺术家显示在列表视图中?

问题解决了 :

对于任何尝试使用 LoaderManager/CursorLoader 技术填充自定义列表视图的人来说,您应该:

1)创建您自己的自定义 CursorAdapter,它将您的行的 TextViews 绑定到光标的数据(请参阅我上面的自定义 CursorAdapter)

2)然后,在您的片段中,这是要做什么:

就是这样!我不知道为什么没有人购买过这样一个关于如何使用 LoaderManager、CursorLoader 和自定义适配器来填充自定义列表视图的非常简单的示例。无论如何,我希望这对将来像我这样的初学者有所帮助。

0 投票
1 回答
172 浏览

android - Android 使用可见的 ListFragment 项填充 ArrayList

我在 ViewPager 中使用 ListFragment。每次用户翻到新页面时,有没有办法用可见的 ListFragment 的列表项填充 ArrayList?

0 投票
1 回答
349 浏览

android - 在 Android 中使用 ListFragment 解析 XML

我目前正在开发一个 android 项目,它连接到服务并获取 xml 并在 asynctask 中对其进行解析,然后将其显示在 ListView 中。我正在使用标准的 ListActivity,它工作得非常好,但我想使用 ListFragment,我无法从 API 示例中判断在活动或片段中进行 xml 解析是否更好。如果我在活动中进行解析,我将如何将数组列表传递给我的片段以显示它?

任何帮助或教程将不胜感激。

谢谢!

0 投票
19 回答
52230 浏览

android - getLoaderManager().initLoader() 不接受“this”作为参数,尽管类 (ListFragment) 实现了 LoaderManager.LoaderCallbacks

我无法按照在 Android 中使用 SQLite的指南进行操作。我使用的是 aListFragment而不是 a ListActivity(如示例中所示),所以我使用的是ListFragment工具LoaderManager.LoaderCallbacks<Cursor>。然后,在fillData()方法中ListFragment

我得到错误:

在标记线上,即使this执行LoaderManager.LoaderCallbacks<Cursor>

谢谢你的任何想法。

0 投票
1 回答
1646 浏览

android - Android ListFragment 列表视图在方向更改时重叠

我正在使用 ListFragment 并从 Android 兼容性包中实现 LoaderManager.LoaderCallbacks 以在应用程序中显示列表视图。列表显示正常,但是当方向改变时,列表视图不正确(我认为视图与前一个重叠)

图片在这里:列表视图在方向改变后

有没有人遇到过同样的问题?您能否让我知道可能是什么问题,或者是否需要提供更多详细信息。

0 投票
2 回答
1414 浏览

android - 试图显示 ListFragment

我正在尝试显示一个 ListFragment。我想我已经正确设置了一切,但无论我尝试什么,我都会得到一个 RuntimeException:无法启动 Activity。我已经搜索和调试了几天,还没有想出答案。这是我到目前为止的代码。任何帮助将不胜感激。

下面是启动 Activity 的方法:

这是上一个方法启动的Activity:

这是tip_list_fragment_activity.xml:

这是提示列表片段:

最后是 list_fragment.xml:

这是堆栈跟踪:

07-01 00:41:37.932: E/AndroidRuntime(6083): 致命异常: main 07-01 00:41:37.932: E/AndroidRuntime(6083): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. app.tipcalculator/com.app.tipcalculator.TipListActivity}:android.view.InflateException:二进制 XML 文件第 7 行:膨胀类片段时出错

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.ActivityThread.access$600(ActivityThread.java:123)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.os.Handler.dispatchMessage(Handler.java:99)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.os.Looper.loop(Looper.java:137) 07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android. app.ActivityThread.main(ActivityThread.java:4424)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 java.lang.reflect.Method.invokeNative(Native Method)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 java.lang.reflect.Method.invoke(Method.java:511)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)

07-01 00:41:37.932: E/AndroidRuntime(6083): at dalvik.system.NativeStart.main(Native Method)

07-01 00:41:37.932:E/AndroidRuntime(6083):原因:android.view.InflateException:二进制 XML 文件第 7 行:膨胀类片段时出错

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:739)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:489)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:396)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:352)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.Activity.setContentView(Activity.java:1835)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 com.app.tipcalculator.TipListActivity.onCreate(TipListActivity.java:28)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.Activity.performCreate(Activity.java:4465)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)

07-01 00:41:37.932: E/AndroidRuntime(6083): ... 11 更多 07-01 00:41:37.932: E/AndroidRuntime(6083): 由: android.support.v4.app.Fragment$ InstantiationException:无法实例化片段。TipListFragment:确保类名存在,是公共的,并且有一个公共的空构造函数

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:391)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:359)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:262)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)

07-01 00:41:37.932: E/AndroidRuntime(6083): ... 21 更多 07-01 00:41:37.932: E/AndroidRuntime(6083): 由: java.lang.ClassNotFoundException: .TipListFragment

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461)

07-01 00:41:37.932: E/AndroidRuntime(6083): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:381)

07-01 00:41:37.932: E/AndroidRuntime(6083): ... 24 更多

0 投票
1 回答
16829 浏览

android - ListFragment 中的自定义 ArrayAdapter

我正在尝试创建一个自定义ArrayAdapter以用于我的ListFragment. 现在ListFragment除了TextView说它是什么片段编号外,什么都没有显示。我在getView()我的适配器的方法中放置了一个断点,它没有被调用。我搜索了不会被调用的原因,有些人似乎认为我的 ListView 是隐藏的,所以我尝试将 更改layout_heightwrap_content,但这没有用。

另外,我一直在关注这个开发者页面的代码:http: //developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

列表片段:

阵列适配器:

fragment_pager_list.xml:

我之前已经制作了自定义 ArrayAdapters 没有问题,那么让它们与 ListFragment 一起工作我是否缺少一些东西?

0 投票
2 回答
2247 浏览

android - Android ListFragment 重复条目

我有这个应用程序,我在其中实现了 ActionBar Fragment 接口。在界面之下,有一个 ListFragment ,每次我切换到不同的选项卡时,列表中的条目都会重复。有人可以告诉我使用自定义适配器实现 listfragment 的正确方法吗?

以下是我的代码:FeaturedFragment.java

精选列表适配器:

[编辑] 以下代码根据@10s 的建议修改。但是,结果还是一样。。

0 投票
1 回答
587 浏览

android - ListFragment 激活项背景

我有一个默认布局的 ListFragment,我使用 setItemChecked 检查项目。在 Honeycomb 和 ICS 上,选中的行会在我使用simple_list_item_activated_1布局时自动应用背景颜色。如何在预 HoneyComb 设备上实现相同的效果?在旧平台上既不可用,state_activated也不可用。activatedBackgroundIndicator