2015-08-10 4 views
-1

Я пытаюсь начать новую деятельность, используя Intent, но я получаю java.lang.IllegalStateException: Could not execute method of the activityjava.lang.IllegalStateException: Не удалось выполнить метод деятельности - начиная новую активность

Что я делаю неправильно?

Основная деятельность

package com.example.wrw; 


import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 

public class MainActivity extends Activity { 

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

    public void clicked(View v) 
    { 
     Intent intent = new Intent(this, newact.class); 
     startActivity(intent); 

    } 
} 

newact.java

package com.example.wrw; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 

public class newact extends Activity { 

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


} 

act_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Start Act" 
     android:onClick="clicked" 
     /> 

</LinearLayout> 

newlayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


</LinearLayout> 

Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.wrw" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

вы не добавили 'newact' активность в манифесте ... –

+0

попытаться Intent намерения = новый Intent (MainActivity.this, newact.class), а также зарегистрировать newact в файле манифеста –

+0

, почему вопрос опущен ...? – techno

ответ

3

В приложение для Android, все Activity должны быть настроены в файле Manifest.xml, во-первых, так что вы должны добавить newact Activity в свой манифест

<activity android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
</activity> 
<activity android:name="com.example.wrw.newact"></activity> 
+1

спасибо .. он работал. – techno

+0

В вашей деятельности нет никаких проблем, но одна вещь, которую вы пропустили, - это регистрация активности в вашем файле манифеста. Обычно когда-либо мы используем новое действие, которое необходимо зарегистрировать в файле манифеста. Так что только он распознает системные вызовы системы Android 10. –

+0

ладно .. я понял, что сейчас – techno

0

попробовать это

Intent intent = new Intent(MainActivity.this, newact.class) 

, а также зарегистрировать newact в файле манифеста, как этот

<activity 
     android:name=".newact" 
     android:label="@string/app_name"> 
    </activity> 
+0

Как зарегистрироваться? – techno

+0

же, как вы зарегистрировали MainActivity –

+0

<активность андроид: имя = андроид "newact.": Метка = "@ строка/app_name"> –

0

Добавьте это в файл манифеста

<activity 
     android:name=".newact" 
     android:label="@string/title_activity_login"> 
0

Заменить это на свой MainActivity, это может решить вашу проблему.

Intent intent = new Intent(MainActivity.this, newact.class); 
startActivity(intent); 

После этого не забудьте добавить это в андроида menifest файл,

<activity 
     android:name=".newact" 
     android:label="@string/app_name"> 
    </activity> 
Смежные вопросы