在我的应用程序中我有TextView和EditText.两者都有数据.当屏幕方向更改EditText剩余数据时,TextView数据将被清除.
有人可以帮助我找到保留数据的方法TextView吗?
android onconfigurationchanged android-layout android-orientation
我试图阻止在重新启动活动时关闭使用"警报"构建器构建的对话框.
如果我重载onConfigurationChanged方法,我可以成功地执行此操作并重置布局以更正方向,但我丢失了edittext的粘性文本功能.所以在解决对话问题时我创建了这个edittext问题.
如果我从edittext中保存字符串并在onCofiguration更改中重新分配它们,它们似乎仍然默认为初始值而不是在旋转之前输入的值.即使我强制使用无效似乎也会更新它们.
我真的需要解决对话问题或编辑文本问题.
谢谢您的帮助.
我正在使用选项卡式应用程序.我的应用程序有一个EditText.当我单击EditText时,窗口将调整大小,虚拟键盘显示在窗口的底部.但是四个标签显示在键盘的顶部.
当keyborad显示时,我不想显示我的标签.或者我不想调整窗口大小.我需要隐藏EditText下方的标签和其他内容.
我在清单中使用了'android:windowSoftInputMode'的所有选项.但我看不出任何差异.
请给我解决方案.
谢谢..
我们的一个视图有一个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) 当配置更改发生时,我的ListView复选框状态会丢失,我理解为什么.我试着实施
public void onSaveInstanceState(final Bundle outState)
Run Code Online (Sandbox Code Playgroud)
在我的一个碎片中.所以我只是想知道在outState中存储SparseBooleanArray的最简单方法是什么.
另外,我有点困惑,因为ListView有方法:
getListView().getCheckedItemPositions();
Run Code Online (Sandbox Code Playgroud)
这有什么用?
我在片段中有这个代码
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
我有一个listview,在main.xml布局中有两个按钮.点击一个按钮,我动态创建一个textview,并将其添加到屏幕底部以确认用户交互.当用户单击第二个按钮(确认按钮)时,我需要将该文本添加到listview.为了支持横向模式,我在layout-land文件夹中有相同的布局文件.当我点击第一个按钮时,它会创建一个包含一些文本的文本视图,并在屏幕底部添加.现在,如果更改设备方向,则它将加载横向main.xml,并且活动将再次重新创建.所以我的textview正在崩溃.如何防止在方向上重新开展活动.(但它应该选择其他布局文件).
我一直在查看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,滚动条...)不能正常工作.
你能帮我吗?
我观察到我的应用程序用户发生了一些崩溃,这与配置更改和重新创建的 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 …
我希望我的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,但是屏幕总是重新绘制,并且LinearLayout在Activity启动时加载了屏幕.
我有一种感觉,我错过了一些东西onConfigurationChanged,但不知道是什么.我想我需要ViewFlipper在LinearLayout内部或内部调用一些函数.我应该打电话给哪些功能?
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 ×10
orientation ×2
dialog ×1
java ×1
keyboard ×1
layout ×1
methods ×1
oncreate ×1
onresume ×1
rotation ×1
scrollview ×1
sparse-array ×1
view ×1