我已经在其他地方看到了这方面的照片,但是从某个时间回来,答案通常是“这是Android 2.3的一个已知问题”我使用4.4,所以这绝对不是答案。
我有关于最简单的程序:“Hello,Android”。当我启动模拟器时,它以纵向模式加载。使用Fn-Ctrl-F11(Mac),模拟器旋转到横向模式。但应用程序和手机控件不会重绘 - 整个事情只是侧面看。
这是清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.helloandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.test.helloandroid.Hello"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
和活动XML文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Hello" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
我正在使用Eclipse构建,ADT捆绑构建版本v22.3.0-887826,尽管我无法想象这对于这个微不足道的事情很重要。
我的模拟器适用于设备Galaxy Nexus,Android 4.4 API等级19.我尝试使用硬件键盘,标记为无标记。我找到了一个“键盘盖支撑”设置,我没有看到任何地方 - 这个评论来自3/12&amp;所以可能已经过时了。
这是我的第一个Android应用程序,所以在这个环境中我是一个完全的新手。 TIA对我缺少的任何建议。
编辑:为hello.java添加代码
package com.test.helloandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class Hello extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.hello, menu);
return true;
}
}
答案 0 :(得分:2)
如果您是初学者,则应通过this reference document了解Activity lifecycle
。
在这里,我包含了一些Log
和Toast
,以便您更轻松地了解旋转屏幕时发生的过程。
示例:强>
package com.test.helloandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class Hello extends Activity {
private static final String TAG = "Hello";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello);
Log.d(TAG, "onCreate");
Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.hello, menu);
return true;
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
Toast.makeText(this, "onResume", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show();
}
}
我希望它会有所帮助!!
答案 1 :(得分:2)
显然,旧的一切都是新的:orientation change bug in 4.4
“他们越是越过管道,就越容易阻止排水管。”
很高兴知道我没有错过任何明显的东西; OTOH这是一个非常明显的失败谷歌的质量保证...比尔盖茨潜入那里没有人在看?或者他们是贪婪的&amp;试图通过破坏模拟器来销售手机进行测试?看起来我的未来会有一台设备。
修改:
参考:由Android的框架工程师CommonsWare回答。