Приостановлено (исключение RuntimeException) Когда я нажимаю кнопку, которая открывает новый класс с новым макетом - PullRequest
0 голосов
/ 15 апреля 2011

Мое приложение недавно начало выдавать "Suspended (исключение RuntimeException)". Я думаю, что я мог случайно испортить некоторый код, но я не могу точно определить проблему.

Это мой чат, когда я нажимаю на завтракКнопка.

04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: главная
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099):java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.merch.dine / com.merch.dine.myMenu}: java.lang.ClassCastException: android.widget.ImageButton
04-14 17: 54: 15.941:ОШИБКА / AndroidRuntime (6099): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2737)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2753)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): на android.app.ActivityThread.access $ 2500 (ActivityThread.java:129)
04-14 17:54: 15.941: ОШИБКА / AndroidRuntime (6099): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2107)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в android.os.Handler.dispatchMessage (Handler.java:99)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): на android.os.Looper.loop (Looper.java:143)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): вandroid.app.ActivityThread.main (ActivityThread.java:4701)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в java.lang.reflect.Method.invokeNative (собственный метод)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): по адресу java.lang.reflect.Method.invoke (Method.java:521)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в dalvik.system.NativeStart.main (собственный метод)
04-14 17:54: 15.941: ОШИБКА / AndroidRuntime (6099): вызвано: java.lang.ClassCastException: android.widget.ImageButton
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в com.merch.dine.myMenu.onCreate (myMenu.java: 36)
04-14 17: 54: 15.941: ОШИБКА / AndroidRuntime (6099): в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047)
04-14 17: 54: 15.941: ОШИБКА/ AndroidRuntime (6099): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2701)

Вот отладочная информация о потоке

Тема [<1> main] (Приостановлено (исключение RuntimeException))
Строка ActivityThread.performLaunchActivity (ActivityThread $ ActivityRecord, Intent): 2659
Строка ActivityThread.handleLaunchActivity (ActivityThread $ ActivityRecord, Intent): 2753
ActivityThread.access $ 2500Строка (ActivityThread, ActivityThread $ ActivityRecord, Intent): 129
Строка ActivityThread $ H.handleMessage (Сообщение): 2107
Строка ActivityThread $ H (Обработчик) .dispatchMessage (Сообщение): 99
Looper.loop () строка: 143
ActivityThread.main (String []) строка: 4701
Method.invokeNative (Object, Object [], Class, Class [], Class, int, boolean) строка: не доступно [собственный метод]
Method.invoke (Object, Object ...) строка: 521
ZygoteInit $ MethodAndArgsCaller.run () строка: 868
ZygoteInit.main (String []) строка: 626
NativeStart.main (String []) строка: недоступно [собственный метод]

вот мой java-файл с кнопкой, вызывающей сбой

public class EnglishOne extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //FIXED LANDSCAPE
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

        //FULLSCREEN
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.english1);

        //button breakfast
        Button bBreakfast1 = (Button) findViewById(R.id.breakfast1);

        bBreakfast1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View V) {
                startActivity(new Intent("com.merch.dine.BREAKFASTONE"));
            }
        });
    }
}

Это действиечто кнопка должна начинаться с пустого макета XML

public class breakfastone extends Activity {

    public void OnCreate(Bundle breakfastone) {
        super.onCreate(breakfastone);
        setContentView(R.layout.breakfast1);
    }
}

1 Ответ

0 голосов
/ 18 апреля 2011

Неважно. Я обошел свою проблему, используя XML для установки функции onClick, а затем закодировал свой java-файл, чтобы изменить представление содержимого при вызове функции.

Специальный код кнопки XML;

<ImageButton android:id="@+id/button1"
    android:layout_height="160dip"
    android:layout_width="285dip"
    android:onClick="switchLayer"
    android:src="@drawable/icon"
    android:layout_x="285dip"
    android:layout_y="481dip">
</ImageButton>

код, специфичный для кнопки Java;

public void switchLayer(View view) {
    // Button1 switches layout
    setContentView(R.layout.layer2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...