2013-07-28 45 views
2

真正的noob在這裏。我正在嘗試創建第二個活動來啓動第二個佈局。當我嘗試添加setOnClockListener時,啓動應用程序會進入黑屏,從不真正加載,然後崩潰。爲什麼Android應用程序在添加按鈕以啓動新的活動後崩潰?

有兩種佈局:activity_main.xml和activity_camcord.xml。我發佈了MainActivty,第二項活動CamcordActivity和Manifest。

請讓我知道什麼事我可以做,使這還不夠翔實

主要活動

package com.notebook.ksen; 

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


public class MainActivity extends Activity { 

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

     //Retrieve the button object 
     Button imageButtonCamCord = (Button)findViewById(R.id.imageButtonCamCord); 
     //Attach the Listener 
     imageButtonCamCord.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(MainActivity.this , CamcordActivity.class); 
       startActivity(intent); 
      } 
     }); 



} 

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); 

    setContentView(R.layout.activity_main); 


    return true; 
} 

}

SecondActivity

package com.notebook.ksen; 

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

public class CamcordActivity extends Activity { 

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


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

} 

清單

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="16" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.notebook.ksen.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 android:name=".CamcordActivity" android:label="camcord"/> </activity> 
</application> 

+0

爲了將來的參考,請儘可能瞭解logcat - 這是您的第一道防線。 – 323go

+0

@ 323go不知道如何使用它,例如,在採取當前解決方案避免應用程序crashig後,如何才能找出爲什麼imagebutton不啓動下一個佈局?使用logcat – Iancovici

+1

它會幫助你調試崩潰。你可以在你的OnClickListener中設置一個斷點,看看它爲什麼不起作用。由於這個問題已經有了一個被接受的答案,我建議再問一次,如果你被卡住了。 – 323go

回答

3

如果main.xml中使用的ImageButton,解決這個問題;

主要活動

ImageButton imageButtonCamCord = (ImageButton)findViewById(R.id.imageButtonCamCord); 

,如果它不能正常工作

主要活動

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); 

//setContentView(R.layout.activity_main); ** don't use 


return true; 
} 

次活動

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    //getMenuInflater().inflate(R.menu.camcord, menu); 
    //setContentView(R.layout.activity_camcord); ** don't use 
    return true; 
} 
2

試試這個:

ImageButton imageButtonCamCord = (ImageButton)findViewById(R.id.imageButtonCamCord); 

,而不是這樣的:

Button imageButtonCamCord = (Button)findViewById(R.id.imageButtonCamCord); 

如果不解決問題,嘗試後的logcat的輸出。

+0

謝謝,就是這樣。 – Iancovici

相關問題