2017-01-19 6 views
1

У меня есть относительный макет, которому я назначил функцию onClick, которая при нажатии должна открывать новое действие. Тем не менее, происходит сбой приложения при попытке код ниже:Новая активность, не открывшаяся при использовании студии StartActivity Android

startActivity(new Intent(MainActivity.this, newActivity.class)); 

Однако это прекрасно работает, когда я печатаю тост:

Toast.makeText(this, "Worked", Toast.LENGTH_LONG).show(); 

Мой макет XML является:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/layout" 
    android:onClick="newactivity" 
    android:orientation="vertical"> 

метод, который я звоню:

public void newactivity (View v) { 

    //Toast.makeText(this, "Worked", Toast.LENGTH_LONG).show(); 
    startActivity(new Intent(MainActivity.this, newActivity.class)); 
} 

Метод работает нормально, если я прокомментирую startActivity и раскомментирую Toast (он печатает Обработано при щелчке по макету).

Я не уверен, что я делаю неправильно.

Я также пробовал другие способы открытия деятельности, но до сих пор не повезло:

Intent myIntent = new Intent(MainActivity.this, newActivity.class); 
MainActivity.this.startActivity(myIntent); 

Я получаю ошибку ниже:

java.lang.IllegalStateException: Could not execute method for android:onClick 
                      at android.view.View$DeclaredOnClickListener.onClick(View.java:4725) 
                      at android.view.View.performClick(View.java:5637) 
                      at android.view.View$PerformClick.run(View.java:22433) 
                      at android.os.Handler.handleCallback(Handler.java:751) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:154) 
+1

is 'newActivity' зарегистрирован в манифесте? плюс полная информация о полной ошибке –

+0

, новая активность не регистрировалась, поэтому мне пришлось вручную ее вручную. Спасибо за указание – SumOne

ответ

1

Добавили ли вы деятельность ваше призвание в манифесте?

+0

Это сработало. глупая ошибка. нужно подождать 9 минут, прежде чем принимать ответ! – SumOne

+1

Случается для всех нас;) – thushcapone

2

использование

Intent myIntent = new Intent(MainActivity.this, newActivity.class); 
startActivity(myIntent); 
finish(); 
+0

Проголосовал вверх :) поздравил с 1000+ реком – SumOne

+0

После того, как вы удалили '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –

+0

Извините, я не прочитал первую строчку, –

0

Объявите вашу деятельность в AndroidManifest.xml, как это после заявления пусковой деятельности.

<activity android:name=".NewActivity" />