2015-03-28 5 views
0

Мое приложение для 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), в чтобы не сделать этот вопрос чрезмерно длинным.

Заранее благодарен!

+0

Проверьте расположение ландшафта xml. Есть ли кнопка с именем 'imageButton_Pacientes'? –

+0

Этот фрагмент logcat не обнаруживает ошибок. – Simon

+0

Проблема в вашем xml как уже ответил –

ответ

1

В файле XML ландшафтном у вас есть ImageButton называется imageButton_Users вместо imageButton_Pacientes. Переименуйте его, и все должно работать нормально.

Вы пытаетесь найти представление, которого нет, и ваше приложение будет разбиваться.

+0

О, давай! Это происходит, когда вы привыкли писать приложения на английском языке, но вынуждены делать это на испанском языке. Вы в конечном итоге смешиваете оба. Спасибо дружище! Невозможно повысить, потому что для этого требуется 15 репутации: / –

Смежные вопросы