2016-05-02 202 views
0

也許這是一個簡單的問題,但我不能得到答案開始新的活動,雖然我搜索了幾個小時,更在谷歌等通過點擊按鈕在工具欄

我設置了兩個活動,兩種佈局 - 主要(背景白色),第二(背景黑色)。
後來我設置的佈局文件夾名爲工具欄上的一個新的資源文件:

<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@android:color/black"> 

<Button 
    android:id="@+id/profile_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="start" 
    android:text="Profile" /> 

</android.support.v7.widget.Toolbar> 

我現在的問題是:
我應該把在我的工具欄按下按鈕,啓動第二個行動的方法?我該怎麼做?
MainActivity類中使用XML文件中的onClickMainActivity中的方法或MainActivity類中的OnClickListenerMethod對它進行了嘗試。

我有這樣的:

public void start(View view) { 
    Intent intent = new Intent(this, ProfileActivity.class); 
    startActivity(intent); 
} 

但我得到的錯誤,我的應用程序關閉:NullPointerExceptionIllegalStateException

希望你們能幫助我,因爲我剛開始使用Java!

編輯:主要和第二個活動中唯一的方法是onCreate方法super.onCreatesetContentView。也許我必須添加一些東西?

以下是錯誤:

05-02 23:48:23.533 17050-17050/com.example.timomichel.myapplication E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.timomichel.myapplication, PID: 17050 
    java.lang.IllegalStateException: Could not execute method for android:onClick 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289) 
     at android.view.View.performClick(View.java:5198) 
     at android.view.View$PerformClick.run(View.java:21147) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5417) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Method.invoke(Native Method) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
     at android.view.View.performClick(View.java:5198)  
     at android.view.View$PerformClick.run(View.java:21147)  
     at android.os.Handler.handleCallback(Handler.java:739)  
     at android.os.Handler.dispatchMessage(Handler.java:95)  
     at android.os.Looper.loop(Looper.java:148)  
     at android.app.ActivityThread.main(ActivityThread.java:5417)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
    Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.timomichel.myapplication/com.example.timomichel.myapplication.SecondActivity}; have you declared this activity in your AndroidManifest.xml? 
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) 
     at android.app.Activity.startActivityForResult(Activity.java:3917) 
     at android.app.Activity.startActivityForResult(Activity.java:3877) 
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843) 
     at android.app.Activity.startActivity(Activity.java:4200) 
     at android.app.Activity.startActivity(Activity.java:4168) 
     at com.example.timomichel.myapplication.MainActivity.start(MainActivity.java:18) 
     at java.lang.reflect.Method.invoke(Native Method)  
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)  
     at android.view.View.performClick(View.java:5198)  
     at android.view.View$PerformClick.run(View.java:21147)  
     at android.os.Handler.handleCallback(Handler.java:739)  
     at android.os.Handler.dispatchMessage(Handler.java:95)  
     at android.os.Looper.loop(Looper.java:148)  
     at android.app.ActivityThread.main(ActivityThread.java:5417)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+1

也許你應該對'findViewById(R.id.profile_button)Java代碼' –

+0

但是,添加這樣的按鈕似乎是錯誤的。如果你想添加動作菜單按鈕,你可以[按照文檔](https://developer.android.com/training/appbar/actions.html)。 –

+0

對不起,但我忘了在XML文件中添加'android:onClick =「start」。所以我有這種方法:'公共無效開始(查看視圖){ 意向intent =新的意圖(this,ProfileActivity.class); startActivity(intent); }' – Timo

回答

0

申報SecondActivity在AndroidManifest.xml中:

<activity android:name="com.example.timomichel.myapplication.SecondActivity"> 
    .... 
</activity>