我在layout-land和layout-port文件夾中有兩個main.xml文件,當手機方向改變時它強制重新加載main.xml。不同的方向變化佈局
@Override
public void onConfigurationChanged(Configuration configure){
super.onConfigurationChanged(configure);
setContentView(R.layout.main);
它可以在縱向上正常工作,但在橫向頁面上按任意圖像按鈕都會導致應用程序崩潰。當按下按鈕時,圖像按鈕都會將名爲網格的圖像更改爲不同的圖像。打開另一個頁面的按鈕在兩種佈局中都能正常工作。這是一個代碼示例。
final ImageView imageView = (ImageView)findViewById(R.id.grid);
// This is an imagebutton
findViewById(R.id.plank).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
imageView.setImageResource(R.drawable.gridplanks);
}
});
// This is a button that brings up a new page
findViewById(R.id.mcg).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent("com.example.minecraftcraftingguide.MCG"));
}
});
這是你所需要的?編程新手,抱歉。
>09-18 22:20:46.688: ERROR/AndroidRuntime(334): FATAL EXCEPTION: main
09-18 22:20:46.688: ERROR/AndroidRuntime(334): java.lang.NullPointerException
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at com.example.minecraftcraftingguide.Menu$1.onClick(Menu.java:27)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.view.View.performClick(View.java:2485)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.view.View$PerformClick.run(View.java:9080)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.os.Handler.handleCallback(Handler.java:587)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.os.Handler.dispatchMessage(Handler.java:92)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.os.Looper.loop(Looper.java:123)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at java.lang.reflect.Method.invoke(Method.java:507)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-18 22:20:46.688: ERROR/AndroidRuntime(334): at dalvik.system.NativeStart.main(Native Method)
我會建議設置一些斷點,在調試模式下運行它並查看實際崩潰的原因是什麼。我很確定每次旋轉設備時都會調用onCreate,因此您應該儘可能完成上面所做的所有工作。 –
請顯示logcat輸出,您正在收到什麼錯誤。謝謝。 –
我的猜測是你刪除了這個setContentView。它不需要那裏。按照此處的說明進行快速配置更改http://developer.android.com/resources/articles/faster-screen-orientation-change.html – the100rabh