问题标签 [android-configchanges]

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 投票
0 回答
2278 浏览

android - onSaveInstanceState() 与 onRetainCustomNonConfigurationInstance()

我正在使用 ActionBarSherlock 以及MenuItem我动态管理的几个 s,具体取决于程序状态。具体来说,我将s 保存到'方法MenuItem中的实例变量中,然后可以根据需要在.ActivityonCreateOptionsMenu()Activity

但是,我发现MenuItem变量可能会在配置更改时丢失,例如设备旋转。因此,如果需要,我还将它们放入 aParcel并通过下一次调用中的机制将它们传递给onSaveInstanceState()进行恢复。savedInstanceStateonCreate()

在设备旋转的情况下,这似乎工作正常。但是,如果我按下主页按钮,我会收到错误消息:

知道有什么区别,或者建议如何解决?谢谢!

更新

我找到了一个简单的解决方案,使用onRetainCustomNonConfigurationInstance(). 通过覆盖此方法,您可以在销毁 an 时存储您选择的类的对象Activity,然后使用getLastCustomNonConfigurationInstance(). 这似乎比弄乱Parcelables 等要简单得多,而且它适用于我的情况。

但我仍然想知道:为什么我会使用 得到上述错误onSaveInstanceState()?使用起来一般安全onRetainCustomNonConfigurationInstance()吗,还是有什么陷阱?

0 投票
1 回答
97 浏览

android - ActionBar 总是重新创建

我已经创建了操作栏和选项卡,就像我之前的帖子一样,

片段webview java脚本功能不起作用

Android 操作栏中的菜单

我已经在 ActionBar 中加载了 webview。在 web 视图中,我放置了一个用于捕获图像的按钮,并且设备的相机打开并拍照,然后我将值返回到加载的 html 文件。我已经通过本机方法检查了 html 文件中的值,这很好。但总是重新创建操作栏。而不是打开相机并将值返回到 webview,如果我试图将任何字符串发送到 html 文件,它不会重新加载。如果我在操作栏选项卡场景中启动任何活动,则只会调用两次 onCreate() 方法,因此会重新加载 html 页面。我已经指定了“android:configChanges="orientation|keyboardHidden|screenSize"对于所有的活动。如何解决这个问题?

0 投票
1 回答
7360 浏览

android - 后堆栈中的配置更改片段现在共享 FrameLayout?

应用程序问题:

当方向改变时,应用程序会遇到以下问题:

  • FragmentA 和 FragmentC 现在都占用 FrameLayout 容器。

什么工作:一切都按我的意愿工作......在旋转屏幕之前。

活动简介:

EditActivity 目的:编辑集合和项目字段。

此活动以编程方式创建的片段:

  • FragmentA - 用于编辑集合字段的片段
  • FragmentB - 集合中项目的 ListFragment
  • FragmentC - 用于编辑项目字段的片段。

初始布局:FragmentA 位于 FragmentB 之上,每个都有自己的 FrameLayouts。

当用户单击 FragmentB 的列表视图项目时:将 FragmentA 替换为 FragmentC 以允许用户编辑该项目的字段。现在 FragmentC 位于 FragmentB 之上。

这似乎是一个非常简单的概念:活动的顶部用于编辑整个集合的属性或集合中的单个项目。我觉得我在布局上没有做任何奇妙的事情,所以我有点困惑,手机(模拟器)的简单旋转会导致这些问题,我花了这么多时间试图解决。

为什么Android Fragment Guide 示例对我不起作用:他们的示例很像我正在做的事情,但是他们的详细片段要么在新活动中打开,要么在当前活动中的自己的框架中打开,他们没有做任何事情交换片段,因此我无法收集他们将如何使用 onSaveIstanceState 来保留可见的片段,然后在 onCreate 中使用该信息来重新创建在方向更改之前存在的 UI。

编辑:通过将 listfragment 放入 XML 中解决了一个问题,这解决了永久旋转的“加载...”问题。

0 投票
2 回答
16514 浏览

android - Rotation of screen crashes android app

I am new to android development. I have developed one app, now the problem is that whenever I rotate screen, app starts activity again and then its crashes application. I found some solution on google to use android:configChanges="orientation" . It works fine but when I rotate screen, its screen size does not change. How to solve this problem ?

Logact :

05-28 14:32:52.038: E/AndroidRuntime(276): FATAL EXCEPTION: main 05-28 14:32:52.038: E/AndroidRuntime(276): java.lang.IllegalArgumentException: View not attached to window manager 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.Window$LocalWindowManager.removeView(Window.java:432) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.dismissDialog(Dialog.java:278) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.access$000(Dialog.java:71) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog$1.run(Dialog.java:111) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.dismiss(Dialog.java:268) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.cancel(Dialog.java:951) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.MobileWeb.mytestbuddy.PremiumMain$TheTask.onPostExecute(PremiumMain.java:373) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.MobileWeb.mytestbuddy.PremiumMain$TheTask.onPostExecute(PremiumMain.java:1) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask.finish(AsyncTask.java:417) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask.access$300(AsyncTask.java:127) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.Handler.dispatchMessage(Handler.java:99) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.Looper.loop(Looper.java:123) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.ActivityThread.main(ActivityThread.java:4627) 05-28 14:32:52.038: E/AndroidRuntime(276): at java.lang.reflect.Method.invokeNative(Native Method) 05-28 14:32:52.038: E/AndroidRuntime(276): at java.lang.reflect.Method.invoke(Method.java:521) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 05-28 14:32:52.038: E/AndroidRuntime(276): at dalvik.system.NativeStart.main(Native Method)

0 投票
1 回答
782 浏览

android - android:configChanges="orientation" 与 surfaceChanged

在一个实现的活动SurfaceHolder.Callback中,我包括了android:configChanges="keyboardHidden|orientation|screenSize"在屏幕旋转时停止重新绘制活动的行。但是,surfaceChanged()当屏幕旋转时仍然会被调用。这是故意的,我怎样才能得到我想要的行为,即完全忽略旋转?

0 投票
1 回答
538 浏览

android - Android:多用户如何更改每个用户的系统区域设置/语言

我正在使用多用户开发 AOSP。我需要将默认系统语言(或区域设置)更改为单个用户,我所有的尝试都会为所有用户更改整个系统语言。

我使用 ActivityManagerNative 类 updateConfiguration(myConfiguration)

可能吗?如果是这样,如何:) 谢谢。

0 投票
2 回答
12261 浏览

android - 添加其他没有 UI 的 Fragment 后获取“Fragment 未创建视图”

我有一个非常奇怪的问题。我有一个常见的片段,它几乎添加到我的应用程序的每个活动中。此片段显示了一个小版本的播放器栏。所以它会监听一些广播来更新当前音乐的名称,并有一些控制,比如播放/暂停。

就像我说的,我几乎在我的应用程序的每一个活动中都添加了这个片段,而且我从来没有遇到过任何问题。但是现在,我需要创建一个没有 UI 并且被保留的新 Fragment (setRetainInstance(true))。在添加了这个新的 Fragment 之后,一切似乎都正常了。直到我旋转了设备并且活动崩溃了。

因此,查看日志,我看到以下异常:

这个异常发生在已经在 Activity 中的 Fragment 中,而不是发生在新的 Fragment 中。如果我删除带有小版本播放器栏的片段并保留没有 UI 的新片段,一切正常。如果我只保留旧片段并删除新片段,它也可以工作。

更多细节:旧片段是通过布局 XML 添加的。这是活动的 XML:

新片段(没有 UI)通过以下方式添加:

更新:

我从没有 UI 的片段中删除了 setRetainInstance(true) 以查看问题是否与此有关。但问题仍然存在。

0 投票
1 回答
27 浏览

android - 在 android 插件中安装时遇到问题

我正在使用 ubuntu

我已经发布了下面的图片

图片

如果我需要安装一些包......如何在 ubuntu 中进行

缺少需求的错误可以在图像中看到

0 投票
1 回答
293 浏览

android - android仅将应用程序设置为纵向,除非拉出键盘

不久前,我将我的应用程序转换为包含横向模式,从每个活动都screenOrientation="portrait"必须这样做:

我还可以很好地处理onConfigurationChanged每个活动中的配置更改。

但事后看来,我只想要带有弹出式硬件键盘的边缘案例来获得横向模式。如何调整清单和代码?

我要保留某个组合 android:configChanges 吗?上课onConfigurationChanged?洞察力赞赏

0 投票
0 回答
631 浏览

android - Android更改本地配置不起作用

我正在构建一个有两种语言的应用程序,使用用户可以更改语言的设置活动。一旦用户选择了任何语言,我想保存他/她的选择,这样当应用程序再次启动时,新语言就会出现。我已经完成了与不同语言和不同方向的布局相关的所有事情。

我的问题

当我启动应用程序时,它总是以该English语言启动,尽管我打印语言环境并且结果是Arabic.

暗示

当用户从设置活动中更改语言并按下保存时,应用程序在新语言下完美运行。不幸的是,重新启动应用程序时,它并没有以这种新语言启动。

我的代码

Tags.java - 一个只包含三个字符串的类:

启动活动- 应用程序启动的活动:

这让我感到困惑,因为正如我之前解释的那样,当我将语言从Setting activity.

我相信你会要求我给你代码,Setting activity以便将我在该活动中所做的与启动活动进行比较。这段代码如下:

设置活动

代码非常简单,我使用了s_language来自两个值的 Spiner。

一个问题可能是,在设置活动中,当用户按下 时saveSetting活动就完成了。在splash活动中,我检查oncreate函数中的语言,然后继续活动并在完成多个步骤后完成它。我不认为完成活动是问题,但我只是为了让图像清晰而告诉你。

我该如何解决这个问题?