2013-03-05 7 views
1

Мое приложение падает, когда я использую кнопку меню, чтобы перейти на новую страницу и вызвать новое действие. Я следил за учебником с сайта разработчика Android, который показывает, как привязывать кнопки к новому действию, но когда я нажимаю объект кнопки, приложение вылетает, не изменяясь на новое действие.Приложение сбой при переключении с основного действия на новый activiy

У меня есть шесть различных видов деятельности, связанных с основным видом деятельности.

Мой журнал кошка выглядит следующим образом:

03-05 20:12:10.185: W/ActivityManager(288): Activity pause timeout for ActivityRecord{40d31ab0 u0 com.example.g00290342bvarley/.MainActivity} 
03-05 20:12:10.394: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property 
03-05 20:12:10.954: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property 
03-05 20:12:11.065: W/EGL_emulation(863): eglSurfaceAttrib not implemented 
03-05 20:12:11.474: I/QSB.SuggestionsProviderImpl(863): chars:0,corpora:[web, apps, com.android.contacts/.activities.PeopleActivity] 
03-05 20:12:11.604: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property 
03-05 20:12:11.744: W/EGL_emulation(449): eglSurfaceAttrib not implemented 
03-05 20:12:12.815: I/Choreographer(288): Skipped 32 frames! The application may be doing too much work on its main thread. 
03-05 20:12:13.114: D/dalvikvm(863): GC_CONCURRENT freed 398K, 13% free 3825K/4348K, paused 11ms+154ms, total 867ms 
03-05 20:12:15.115: I/Process(1467): Sending signal. PID: 1467 SIG: 9 
03-05 20:12:15.285: I/WindowState(288): WIN DEATH: Window{40dbdb70 u0 com.example.g00290342bvarley/com.example.g00290342bvarley.MainActivity} 
03-05 20:12:15.297: I/ActivityManager(288): Process com.example.g00290342bvarley (pid 1467) has died. 
03-05 20:12:15.455: W/InputMethodManagerService(288): Got RemoteException sending setActive(false) notification to pid 1467 uid 10048 
03-05 20:12:36.119: D/ExchangeService(688): Received deviceId from Email app: null 
03-05 20:12:36.119: D/ExchangeService(688): !!! deviceId unknown; stopping self and retrying 
03-05 20:12:41.254: D/ExchangeService(688): !!! EAS ExchangeService, onCreate 
03-05 20:12:41.264: D/ExchangeService(688): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false 
03-05 20:12:41.284: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found 
03-05 20:12:41.294: D/ExchangeService(688): !!! Email application not found; stopping self 
03-05 20:12:41.304: D/ExchangeService(688): !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false 
03-05 20:12:41.334: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found 
03-05 20:12:41.354: E/ActivityThread(688): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]06b20 that was originally bound here 

MainActivity где расположены методы кнопка:

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

public class MainActivity extends Activity { 

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


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    //methods for button clicks 

    public void aboutMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, AboutGmit.class); 
     EditText editText = (EditText) findViewById(R.id.about); 
     startActivity(intent); 

    } 

    public void mapMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, MapGmit.class); 
     EditText editText = (EditText) findViewById(R.id.map); 
     startActivity(intent); 
    } 

    public void courseMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, CourseInfo.class); 
     EditText editText = (EditText) findViewById(R.id.courseInfo); 
     startActivity(intent); 
    } 

    public void lifeMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, StudentLife.class); 
     EditText editText = (EditText) findViewById(R.id.studLife); 
     startActivity(intent); 
    } 


    public void portalMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, StudentPortal.class); 
     EditText editText = (EditText) findViewById(R.id.studPortal); 
     startActivity(intent); 
    } 

    public void contactMeth(View view) { 
     // Do something in response to button 
     Intent intent = new Intent(this, ContactInfo.class); 
     EditText editText = (EditText) findViewById(R.id.contact); 
     startActivity(intent); 
    } 

} 

Новая активность называется ContactInfo.java

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

public class ContactInfo extends Activity { 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.contact_info, menu); 
     return true; 
    } 

} 

файл манифеста, где я добавил элемент активности.

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

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

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.g00290342bvarley.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.g00290342bvarley.AboutGmit" 
      android:label="@string/title_activity_about_gmit" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     </activity> 
     <activity 
      android:name="com.example.g00290342bvarley.MapGmit" 
      android:label="@string/title_activity_map_gmit" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     </activity> 
     <activity 
      android:name="com.example.g00290342bvarley.CourseInfo" 
      android:label="@string/title_activity_course_info" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     </activity> 
     <activity 
      android:name="com.example.g00290342bvarley.StudentLife" 
      android:label="@string/title_activity_student_life" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     </activity> 
     <activity 
      android:name="com.example.g00290342bvarley.StudentPortal" 
      android:label="@string/title_activity_student_portal" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.g00290342bvarley.MainActivity" /> 
     </activity> 
     <activity 
      android:name="com.example.g00290342bvarley.ContactInfo" 
      android:label="@string/title_activity_contact_info" 
      android:parentActivityName="com.example.g00290342bvarley.MainActivity" 
      > 
     </activity> 
    </application> 

</manifest> 

Кнопка раскладка в activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/LinearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/about" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:onClick="aboutMeth" 
     android:hint="Details about GMIT" 
     android:text="@string/about" /> 

    <Button 
     android:id="@+id/map" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="95dp" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:onClick="mapMeth" 
     android:hint="Location of GMIT on google maps" 
     android:text="@string/map" /> 

    <Button 
     android:id="@+id/courseInfo" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:onClick="courseMeth" 
     android:hint="Info about courses offered by GMIT" 
     android:text="@string/courseInfo" /> 

    <Button 
     android:id="@+id/studLife" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="98dp" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:hint="Gallery" 
     android:onClick="lifeMeth" 
     android:text="@string/studLife" /> 

    <Button 
     android:id="@+id/studPortal" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="93dp" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:onClick="portalMeth" 
     android:hint="The Student Portal!" 
     android:text="@string/studPortal" /> 

    <Button 
     android:id="@+id/contact" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:onClick="contactMeth" 
     android:hint="GMIT contact info" 
     android:text="@string/contact" /> 

</LinearLayout> 
+1

Вы включили неправильную часть логарифма. Вместо этого отправьте трассировку стека для исключения. – Simon

ответ

1

Возможно, у меня что-то не хватает, но я пытаюсь. В каждом из методов onClick вы пытаетесь получить editText.

EditText editText = (EditText) findViewById(R.id.contact); 

Но нет EditText объявлен в макете, так что он превращается в NullPointerException. Попробуйте удалить эту строку. Надеюсь, что это поможет

+0

Если я напишу это, как кнопка будет ссылаться на идентификатор? –

+0

Я ссылался на элемент редактирования текста, когда он был нажатием кнопки, поэтому я заменил это, и это сработало, но в отношении ответа ответа на удаление это не помогло, но вы были прав, говоря, что в строке кода была ошибка, поэтому я Я собираюсь это принять :) –

1

<activity> элемент принадлежит в файле AndroidManifest.xml, а не в файлах верстки.

Вам необходимо добавить все 6 мероприятий в ваш файл AndroidManifest.xml.

+0

Я добавил действия в файл манифеста, который выложен выше, но он все еще сбой, любая идея? –

+0

Опубликуйте свой макет. Где код для ваших кнопок. –

+0

ok опубликовать сейчас. –

1

это

<activity 
    android:name="com.example.g00290342bvarley.ContactInfo" 
    android:label="@string/title_activity_contact_info" 
    android:parentActivityName="com.example.g00290342bvarley.MainActivity" > 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.g00290342bvarley.MainActivity" /> 
</activity> 

идет в манифеста, а не в XML вашей деятельности!

+0

Я добавил это в файл манифеста, но он все еще разбился, добавил файл манифеста выше, какие-нибудь идеи? –