问题标签 [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.
android - onSaveInstanceState() 与 onRetainCustomNonConfigurationInstance()
我正在使用 ActionBarSherlock 以及MenuItem
我动态管理的几个 s,具体取决于程序状态。具体来说,我将s 保存到'方法MenuItem
中的实例变量中,然后可以根据需要在.Activity
onCreateOptionsMenu()
Activity
但是,我发现MenuItem
变量可能会在配置更改时丢失,例如设备旋转。因此,如果需要,我还将它们放入 aParcel
并通过下一次调用中的机制将它们传递给onSaveInstanceState()
进行恢复。savedInstanceState
onCreate()
在设备旋转的情况下,这似乎工作正常。但是,如果我按下主页按钮,我会收到错误消息:
知道有什么区别,或者建议如何解决?谢谢!
更新
我找到了一个简单的解决方案,使用onRetainCustomNonConfigurationInstance()
. 通过覆盖此方法,您可以在销毁 an 时存储您选择的类的对象Activity
,然后使用getLastCustomNonConfigurationInstance()
. 这似乎比弄乱Parcelable
s 等要简单得多,而且它适用于我的情况。
但我仍然想知道:为什么我会使用 得到上述错误onSaveInstanceState()
?使用起来一般安全onRetainCustomNonConfigurationInstance()
吗,还是有什么陷阱?
android - ActionBar 总是重新创建
我已经创建了操作栏和选项卡,就像我之前的帖子一样,
我已经在 ActionBar 中加载了 webview。在 web 视图中,我放置了一个用于捕获图像的按钮,并且设备的相机打开并拍照,然后我将值返回到加载的 html 文件。我已经通过本机方法检查了 html 文件中的值,这很好。但总是重新创建操作栏。而不是打开相机并将值返回到 webview,如果我试图将任何字符串发送到 html 文件,它不会重新加载。如果我在操作栏选项卡场景中启动任何活动,则只会调用两次 onCreate() 方法,因此会重新加载 html 页面。我已经指定了“android:configChanges="orientation|keyboardHidden|screenSize"对于所有的活动。如何解决这个问题?
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 中解决了一个问题,这解决了永久旋转的“加载...”问题。
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)
android - android:configChanges="orientation" 与 surfaceChanged
在一个实现的活动SurfaceHolder.Callback
中,我包括了android:configChanges="keyboardHidden|orientation|screenSize"
在屏幕旋转时停止重新绘制活动的行。但是,surfaceChanged()
当屏幕旋转时仍然会被调用。这是故意的,我怎样才能得到我想要的行为,即完全忽略旋转?
android - Android:多用户如何更改每个用户的系统区域设置/语言
我正在使用多用户开发 AOSP。我需要将默认系统语言(或区域设置)更改为单个用户,我所有的尝试都会为所有用户更改整个系统语言。
我使用 ActivityManagerNative 类 updateConfiguration(myConfiguration)
可能吗?如果是这样,如何:) 谢谢。
android - 添加其他没有 UI 的 Fragment 后获取“Fragment 未创建视图”
我有一个非常奇怪的问题。我有一个常见的片段,它几乎添加到我的应用程序的每个活动中。此片段显示了一个小版本的播放器栏。所以它会监听一些广播来更新当前音乐的名称,并有一些控制,比如播放/暂停。
就像我说的,我几乎在我的应用程序的每一个活动中都添加了这个片段,而且我从来没有遇到过任何问题。但是现在,我需要创建一个没有 UI 并且被保留的新 Fragment (setRetainInstance(true))。在添加了这个新的 Fragment 之后,一切似乎都正常了。直到我旋转了设备并且活动崩溃了。
因此,查看日志,我看到以下异常:
这个异常发生在已经在 Activity 中的 Fragment 中,而不是发生在新的 Fragment 中。如果我删除带有小版本播放器栏的片段并保留没有 UI 的新片段,一切正常。如果我只保留旧片段并删除新片段,它也可以工作。
更多细节:旧片段是通过布局 XML 添加的。这是活动的 XML:
新片段(没有 UI)通过以下方式添加:
更新:
我从没有 UI 的片段中删除了 setRetainInstance(true) 以查看问题是否与此有关。但问题仍然存在。
android - 在 android 插件中安装时遇到问题
我正在使用 ubuntu
我已经发布了下面的图片
如果我需要安装一些包......如何在 ubuntu 中进行
缺少需求的错误可以在图像中看到
android - android仅将应用程序设置为纵向,除非拉出键盘
不久前,我将我的应用程序转换为包含横向模式,从每个活动都screenOrientation="portrait"
必须这样做:
我还可以很好地处理onConfigurationChanged
每个活动中的配置更改。
但事后看来,我只想要带有弹出式硬件键盘的边缘案例来获得横向模式。如何调整清单和代码?
我要保留某个组合 android:configChanges 吗?上课onConfigurationChanged
?洞察力赞赏
android - Android更改本地配置不起作用
我正在构建一个有两种语言的应用程序,使用用户可以更改语言的设置活动。一旦用户选择了任何语言,我想保存他/她的选择,这样当应用程序再次启动时,新语言就会出现。我已经完成了与不同语言和不同方向的布局相关的所有事情。
我的问题
当我启动应用程序时,它总是以该English
语言启动,尽管我打印语言环境并且结果是Arabic
.
暗示
当用户从设置活动中更改语言并按下保存时,应用程序在新语言下完美运行。不幸的是,重新启动应用程序时,它并没有以这种新语言启动。
我的代码
Tags.java - 一个只包含三个字符串的类:
启动活动- 应用程序启动的活动:
这让我感到困惑,因为正如我之前解释的那样,当我将语言从Setting activity
.
我相信你会要求我给你代码,Setting activity
以便将我在该活动中所做的与启动活动进行比较。这段代码如下:
设置活动
代码非常简单,我使用了s_language
来自两个值的 Spiner。
一个问题可能是,在设置活动中,当用户按下 时save
,Setting
活动就完成了。在splash
活动中,我检查oncreate
函数中的语言,然后继续活动并在完成多个步骤后完成它。我不认为完成活动是问题,但我只是为了让图像清晰而告诉你。
我该如何解决这个问题?