标签: onconfigurationchanged

屏幕旋转后恢复TextView的状态?

在我的应用程序中我有TextViewEditText.两者都有数据.当屏幕方向更改EditText剩余数据时,TextView数据将被清除.

有人可以帮助我找到保留数据的方法TextView吗?

android onconfigurationchanged android-layout android-orientation

102
推荐指数
4
解决办法
6万
查看次数

防止在Android中屏幕旋转时解除对话框

我试图阻止在重新启动活动时关闭使用"警报"构建器构建的对话框.

如果我重载onConfigurationChanged方法,我可以成功地执行此操作并重置布局以更正方向,但我丢失了edittext的粘性文本功能.所以在解决对话问题时我创建了这个edittext问题.

如果我从edittext中保存字符串并在onCofiguration更改中重新分配它们,它们似乎仍然默认为初始值而不是在旋转之前输入的值.即使我强制使用无效似乎也会更新它们.

我真的需要解决对话问题或编辑文本问题.

谢谢您的帮助.

android dialog onconfigurationchanged android-edittext

91
推荐指数
3
解决办法
5万
查看次数

android:如何在显示虚拟键盘时阻止调整窗口大小

我正在使用选项卡式应用程序.我的应用程序有一个EditText.当我单击EditText时,窗口将调整大小,虚拟键盘显示在窗口的底部.但是四个标签显示在键盘的顶部.

当keyborad显示时,我不想显示我的标签.或者我不想调整窗口大小.我需要隐藏EditText下方的标签和其他内容.

我在清单中使用了'android:windowSoftInputMode'的所有选项.但我看不出任何差异.

请给我解决方案.

谢谢..

keyboard android onconfigurationchanged

23
推荐指数
2
解决办法
3万
查看次数

如何在onConfigurationChanged中获取根布局的新宽度/高度?

我们的一个视图有一个ScrollView根布局.当设备旋转并被onConfigurationChanged()调用时,我们希望能够获得ScrollView新的宽度/高度.我们的代码如下所示:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    Log.d(TAG, "Width: '" + findViewById(R.id.scrollview).getWidth() + "'");
    Log.d(TAG, "Height: '" + findViewById(R.id.scrollview).getHeight() + "'");

    super.onConfigurationChanged(newConfig);

    Log.d(TAG, "Width: '" + findViewById(R.id.scrollview).getWidth() + "'");
    Log.d(TAG, "Height: '" + findViewById(R.id.scrollview).getHeight() + "'");
}
Run Code Online (Sandbox Code Playgroud)

我们的AndroidManifest.xml的相关部分如下所示:

<activity android:name=".SomeActivity"
    android:configChanges="keyboardHidden|orientation">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

最后,我们布局的相关部分如下所示:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollview"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    >
    <LinearLayout android:id="@+id/container"
        android:orientation="vertical"
        android:layout_height="fill_parent"
        android:minHeight="200dip"
        android:layout_width="fill_parent"
        >
Run Code Online (Sandbox Code Playgroud)

在我们的Droid上,我们期望ScrollView的宽度在切换到横向时变为854,在切换回纵向时变为480(并且高度与等效开关相同,减去菜单栏).但是,我们正好相反.这是我们的LogCat:

// Switching to landscape:
03-26 11:26:16.490: DEBUG/ourtag(17245): Width: '480'  // Before super …
Run Code Online (Sandbox Code Playgroud)

android scrollview orientation onconfigurationchanged

20
推荐指数
3
解决办法
1万
查看次数

在Bundle中存储SparseBooleanArray的最佳方法?

当配置更改发生时,我的ListView复选框状态会丢失,我理解为什么.我试着实施

public void onSaveInstanceState(final Bundle outState)
Run Code Online (Sandbox Code Playgroud)

在我的一个碎片中.所以我只是想知道在outState中存储SparseBooleanArray的最简单方法是什么.

另外,我有点困惑,因为ListView有方法:

getListView().getCheckedItemPositions();
Run Code Online (Sandbox Code Playgroud)

这有什么用?

methods android sparse-array onconfigurationchanged

14
推荐指数
2
解决办法
8847
查看次数

在片段中使用onConfigurationChanged

我在片段中有这个代码

public class TestOne extends Fragment {

    View view = null;

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);

      LayoutInflater inflater2 = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater2.inflate(R.layout.testone, null); 

        Toast.makeText(getActivity(), "Rotate fragment", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Toast.makeText(getActivity(), "onCreate Fragment", Toast.LENGTH_SHORT).show();

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.testone, null); 

        Toast.makeText(getActivity(), "onCreateView fragment", Toast.LENGTH_SHORT).show();

        return view; 
    }

}
Run Code Online (Sandbox Code Playgroud)

我想要做的是,当我旋转手机时,我不希望再次执行这些方法.但我想再次调用xml布局,以加载layout-land文件夹的xml.

这段代码不会给出任何错误,只是不起作用而且不明白原因..

我真的很想使用onConfiguratonChanged来做这件事

我感谢任何帮助.

感谢致敬

android onconfigurationchanged screen-rotation android-fragments

14
推荐指数
1
解决办法
2万
查看次数

Android:停止在方向更改时重新创建活动

我有一个listview,在main.xml布局中有两个按钮.点击一个按钮,我动态创建一个textview,并将其添加到屏幕底部以确认用户交互.当用户单击第二个按钮(确认按钮)时,我需要将该文本添加到listview.为了支持横向模式,我在layout-land文件夹中有相同的布局文件.当我点击第一个按钮时,它会创建一个包含一些文本的文本视图,并在屏幕底部添加.现在,如果更改设备方向,则它将加载横向main.xml,并且活动将再次重新创建.所以我的textview正在崩溃.如何防止在方向上重新开展活动.(但它应该选择其他布局文件).

android onconfigurationchanged oncreate android-activity

13
推荐指数
2
解决办法
1万
查看次数

Android Layout土地无法正常工作

我一直在查看stackoverflow中的问题,我已经尝试了所有我见过但布局 - 土地不起作用.在我的代码中,我有和方法onConfigurationChanged

@Override
 public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);           
}
Run Code Online (Sandbox Code Playgroud)

和清单文件:

<activity
        android:name="com.sde.PlayerTrack"
        android:theme="@style/AppTheme"
        android:configChanges="orientation|keyboardHidden|screenSize"
        >
    </activity>
Run Code Online (Sandbox Code Playgroud)

我也尝试删除android清单条目:configChanges然后布局陆载,但我有的组件(TextView,滚动条...)不能正常工作.

你能帮我吗?

layout android onconfigurationchanged android-configchanges

10
推荐指数
2
解决办法
1万
查看次数

由于 NPE 恢复活动时崩溃

我观察到我的应用程序用户发生了一些崩溃,这与配置更改和重新创建的 Activity 相关,我无法重现它。问题似乎出在 Android 类内部,因此我没有机会直接修复它。

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'float android.content.res.Configuration.fontScale' on a null object reference
       at android.content.res.Configuration.setTo + 904(Configuration.java:904)
       at android.content.res.Configuration.(Configuration.java:891)
       at android.app.ActivityThread.createNewConfigAndUpdateIfNotNull + 5133(ActivityThread.java:5133)
       at android.app.ActivityThread.performConfigurationChanged + 5203(ActivityThread.java:5203)
       at android.app.ActivityThread.performConfigurationChangedForActivity + 5117(ActivityThread.java:5117)
       at android.app.ActivityThread.handleResumeActivity + 3994(ActivityThread.java:3994)
       at android.app.ActivityThread.handleLaunchActivity + 3070(ActivityThread.java:3070)
       at android.app.ActivityThread.handleRelaunchActivity + 5006(ActivityThread.java:5006)
       at android.app.ActivityThread.-wrap21(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage + 1665(ActivityThread.java:1665)
       at android.os.Handler.dispatchMessage + 102(Handler.java:102)
       at android.os.Looper.loop + 154(Looper.java:154)
       at android.app.ActivityThread.main + 6816(ActivityThread.java:6816)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1563(ZygoteInit.java:1563)
       at com.android.internal.os.ZygoteInit.main + 1451(ZygoteInit.java:1451)
Run Code Online (Sandbox Code Playgroud)

由于我无法重新创建它,因此在 Goggle …

java android onresume onconfigurationchanged

10
推荐指数
1
解决办法
1104
查看次数

在Android中的方向更改时,视图布局不会刷新

我希望我的VIEW布局可以根据方向变化进行调整.

我的清单设置为:android:configChanges="keyboardHidden|orientation"在活动上.

我有res/layout-land,res/layout-port.

我有onConfigurationChanged我的Activity(它被称为轮换).

在我,Activity我有一个ViewFlipper内部,我有LinearLayouts.

当我启动Activityin port或land模式时,View的布局是正确的(根据我的res/layout-????文件).

但是当我已经进入Activity并且我旋转手机时,我的视图布局不会改变.旋转屏幕,并且onCreate不会调用活动,因为它应该onConfigurationChanged被调用Activity,但是屏幕总是重新绘制,并且LinearLayoutActivity启动时加载了屏幕.

我有一种感觉,我错过了一些东西onConfigurationChanged,但不知道是什么.我想我需要ViewFlipperLinearLayout内部或内部调用一些函数.我应该打电话给哪些功能?

ViewFlipper flipper;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    flipper = new ViewFlipper(getApplicationContext());
    setContentView(flipper);
    initLayout();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(flipper);
}

void initLayout() {
    MyView myview = createMyView(0);
    flipper.addView(myview, 0); …
Run Code Online (Sandbox Code Playgroud)

android view rotation orientation onconfigurationchanged

9
推荐指数
1
解决办法
1万
查看次数