从纵向切换到横向时出错

时间:2015-03-28 12:56:04

标签: java android xml surfaceflinger

我的Android应用很简单。它只有1项活动。我为同一个活动创建了两个布局:一个用于纵向位置(在 res / layout 文件夹内),另一个用于横向位置(在 res / layout-land 内)夹)。我在这个问题的最后给出了两个代码。

我在 myActivity.java 文件中没有任何特殊内容,我只是夸大了布局:

package com.example.myApp;

import android.app.Activity;
import android.os.Bundle;

public class MCentralActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_myActivity);

}
}

此时一切正常。如果我将设备保持在纵向位置,则应用程序将调用相应的XML。它也像一个魅力,如果我决定把它保持在风景位置。

当我决定在前面提到的 myActivity.java 文件中添加一些代码时,会出现问题。它仍然非常简单!

package com.example.myApp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;

public class MCentralActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    ImageButton ibPacientes;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_myActivity);
    ibPacientes = (ImageButton)findViewById(R.id.imageButton_Pacientes);
    ibPacientes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //NOTHING INSIDE HERE!!
        }

    });

}
}

在实施了那些小代码之后,如果我决定去景观,应用程序将突然停止说"不幸的是myApp已停止"。有趣的是,如果我不实现onClickListener,这将不会发生!

LogCat给出的确切错误如下所示:

03-28 13:39:27.870: E/SurfaceFlinger(157): DRAW orientation 1 viewport:(0, 0, 1920, 1080) frame(0, 0, 1920, 1080)
03-28 13:39:15.360: E/SurfaceFlinger(157): STATE orientation 1 viewport:(0, 0, 1920, 1080) frame(0, 0, 1920, 1080)
03-28 13:39:15.360: I/SurfaceFlinger(157): @@@@@@@@ orientation:1, transformOri:4

不要认为布局XML文件必须在我的问题中做很多事情,但我会将它们复制并粘贴到this link (for portrait)this other link (for landscape)中,以免过度提出这个问题长。

提前致谢!

1 个答案:

答案 0 :(得分:1)

在横向XML文件中,您拥有名为 imageButton_Users 的ImageButton,而不是 imageButton_Pacientes 。重命名它,一切都应该正常。

您正在尝试查找不存在的视图,因此您的应用会崩溃。

相关问题