问题标签 [android-support-library]

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 投票
6 回答
16629 浏览

android - 无法将 Fragments 与 Android 兼容包一起使用

“Fragments for All”中,Android SDK 技术主管 Xavier Ducrohet 表示,谷歌通过 SDK Manager 发布了一个 Android 兼容性包。

我已经安装了它,但是,我现在如何使用它呢?

如何在我的项目中集成 Android 兼容包?

0 投票
1 回答
3163 浏览

android - Android ListFragment 游标管理

我想为我的 android 应用程序使用 ListFragment 和 Loader 类。(蜂窝级SDK,但谷歌发布可比包)

在 Fragment 中,它是否具有使用 Fragmemt 生命周期管理游标 API

活动有“ startManagingCursor(Cursor c)

或者

Fragment 在其生命周期中自动管理游标?

0 投票
1 回答
8805 浏览

android - 设置 Android 背景和持久性菜单栏 - 在旧版本上使用属性会导致崩溃 - 是否有主题/模式方法?

在 Android 3.0 中,“已选中”的概念可以使用“激活”背景呈现。这为您提供了当您点击列表片段时看到的持久栏,为列表右侧的片段提供上下文(例如,点击 Gmail 中的文件夹会突出显示该文件夹并打开另一个列表片段以显示该文件夹中的对话)。

例如,片段示例显示如下内容:

该资源 ( android.R.layout.simple_list_item_activated_1) 是 Android 3.0 的新资源。使其“激活”的原因是:

据我所知,该属性值对 Android 3.0 来说是新的,如果您尝试在早期版本的 Android 上使用它会导致您崩溃。我想将背景设置为 3.0/large/landscape 组合的这个神奇值,否则跳过它。

我可以通过拥有两个独立版本的布局来实现这一点,一个在-v11资源集中,一个在常规资源集中。不过,这比我想要的要少一点 DRY,因为大部分布局是相同的,只有一个属性被包含或被跳过。

我尝试使用可绘制资源别名,因此android:background可以引用别名,而别名将处理-v11差异,但<bitmap>可绘制资源似乎不喜欢android:src="@null".

我怀疑这个问题有一种风格和主题的方法,但由于我从来没有完全理解这些(我更尴尬的 Android 知识差距之一),我不完全确定该怎么做。

有没有人制定了在 3.0 上使用“激活”并在 3.0 之前跳过它的模式,除了单独的布局?

谢谢!

0 投票
11 回答
23589 浏览

android - 如何在多片段活动中处理 onContextItemSelected?

我目前正在尝试调整我的应用程序以使用“Android v4 兼容性库”,以便为 Android 1.6 用户提供使用片段的好处。

上下文菜单的实现似乎很棘手:

  • 应用程序的主要活动是扩展FragmentActivity 类。
  • 片段都基于一个扩展片段类的类。
  • 片段类 在其onCreateView()方法 中调用registerForContextMenu()并覆盖onCreateContextMenu()onContextItemSelected()方法。

对于onCreateContextMenu()这很有效。上下文菜单是从资源文件扩展而来的,并根据所选项目(基于 listView...即使片段不是 ListFragment)稍作修改。

选择上下文菜单项时会出现此问题。 从第一个添加的片段开始,对所有当前存在的片段调用onContextItemSelected() 。

在我的例子中,片段用于显示文件夹结构的内容。当打开子文件夹片段的上下文菜单并选择菜单项时,首先在上层调用onContextItemSelected()(取决于此时允许/可见的片段数量)。

现在,我通过活动级别的字段使用一种解决方法,该字段包含调用其onCreateContextMenu()的最后一个片段的标签。这样,当存储的标签与 getTag() 不同时,我可以在onContextItemSelected()的开头调用“return super.onContextItemSelected(item)”。但是这种方法对我来说看起来有点脏。

为什么在所有片段上调用 ​​onContextItemSelected()?而不仅仅是一个调用onCreateContextMenu()的那个?

处理这个问题的最优雅的方法是什么?

0 投票
1 回答
1917 浏览

android - 使用 Honeycomb 兼容包的 IllegalArgumentException

我将兼容性.jar添加到我的项目(使用片段等的那个)但现在每次我构建我的应用程序 Eclipse 都会抛出以下错误。我通过将.jar复制到libs/文件夹中来添加它,然后在Project Properties对话框中使用Add Jar...。我这样做对吗?

0 投票
3 回答
5226 浏览

android - 在片段android中查看重用

我正在尝试将我的视图状态保存在我的片段中,但我担心我会泄露我的活动。这是我正在做的事情:

我很担心,因为我知道所有视图都保留一个上下文,如果从充气器充气,我不知道它是活动上下文还是应用程序上下文。也许使用 getActivity().getApplication() 务实地创建视图并设置其属性而不是使用充气器会是一个更好的主意。我将不胜感激对此的任何反馈。

谢谢!

编辑:确认活动泄漏,虽然这段代码很好,但不要这样做:*(

0 投票
3 回答
13367 浏览

android - FragmentActivity 无法通过 ActivityInstrumentationTestCase2 进行测试

我在针对使用最近发布的 Fragment 支持 API 的 android 应用程序执行 android 单元测试时遇到问题。当针对 FragmentActivity 运行测试时,日志中会显示以下错误,并且类无法加载。当针对相同的类运行但从 Activity 派生的类时,测试工作正常。这两个类都可以作为应用程序正常工作!这意味着当简单地调用它们时,它们都会正确显示它们的布局和功能。支持 jar 是构建路径的一部分并包含在项目中。

我遇到的问题是,使用 Fragment(并支持 pre3.0 android)的唯一方法是使用 FragmentActivity,但如果不包括自动化测试,那么这个库有什么用处。

这是我为演示该问题而构建的代码。测试用例只是尝试实例化被测类:

我创建的两个类如下,fragment_layout 是一个空的LinearLayout:

0 投票
1 回答
794 浏览

android - 带有加载器框架的 MapActivity

是否有任何解决方案可以将 a MapView(以及MapActivity)与 honeycomb pre-3.0 兼容Loader库(以及FragmentActivity)一起使用?

(顺便说一句,我从来没有完全理解为什么需要扩展MapActivity才能使用地图 - 在编写通用活动时它非常有限。接口不是更合适吗?)

0 投票
2 回答
6319 浏览

android - 使用兼容性库的 ListFragment 子类上的 ClassCastException

仅在将兼容性库用于 3.0 之前的设备时才会发生这种情况

我收到一个我无法确定的错误。我有一个带有 ListFragment 和标准 Fragment 的 Activity。它就像 Android 开发指南的开发者部分中提供的示例一样。

ListFragment 子类(没有重写函数)

主要活动

MainActivity 的 XML 布局

来自 LogCat 的错误消息

错误/AndroidRuntime:原因:java.lang.ClassCastException:org.example.ItemListFragment 无法转换为 android.app.Fragment

0 投票
3 回答
13393 浏览

android - ExpandableListFragment 与 LoaderManager 兼容包

我想让我的 ExpandableListActivity 与 Honeycomb 兼容。我想知道为什么兼容性包没有 ExpandableListFragment。

有没有办法让 ExpandableListView 与普通的 Fragment 类一起工作?如何使用 LoaderManager 加载游标?