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文件中的onClick
和MainActivity
中的方法或MainActivity
類中的OnClickListenerMethod
對它進行了嘗試。
我有這樣的:
public void start(View view) {
Intent intent = new Intent(this, ProfileActivity.class);
startActivity(intent);
}
但我得到的錯誤,我的應用程序關閉:NullPointerException
和IllegalStateException
希望你們能幫助我,因爲我剛開始使用Java!
編輯:主要和第二個活動中唯一的方法是onCreate
方法super.onCreate
和setContentView
。也許我必須添加一些東西?
以下是錯誤:
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)
也許你應該對'findViewById(R.id.profile_button)Java代碼' –
但是,添加這樣的按鈕似乎是錯誤的。如果你想添加動作菜單按鈕,你可以[按照文檔](https://developer.android.com/training/appbar/actions.html)。 –
對不起,但我忘了在XML文件中添加'android:onClick =「start」。所以我有這種方法:'公共無效開始(查看視圖){ 意向intent =新的意圖(this,ProfileActivity.class); startActivity(intent); }' – Timo